Crea moduli intelligenti in Word con ActiveX e convalida

Ultimo aggiornamento: 22/09/2025
Autore: Isaac
  • Combina contenuti e controlli ActiveX per un input guidato e flessibile.
  • Convalida i dati con eventi (GotFocus, LostFocus, KeyPress) ed esempi VBA.
  • Per evitare conflitti, raggruppare i pulsanti di opzione con nomi di gruppo diversi.
  • Proteggere il documento con "Compilazione moduli" per preservarne il design.

moduli intelligenti in Word

Creare moduli che non siano solo compilabili ma che guidino anche l'utente, convalidino i dati e mantengano intatto il design è perfettamente possibile in WordCon una combinazione di Controlli dei contenuti e ActiveX, proprietà ben definite, eventi e protezione selettiva, puoi creare moduli davvero utili per l'ufficio, l'amministrazione e la documentazione e, in casi complementari, puoi vedere come creare moduli intelligenti in Excel.

Nelle prossime righe vedrai come attivare gli strumenti necessari, che tipo di controlli utilizzare in ogni caso, come convalidare gli input con gli eventi (ad esempio, numeri o date), come raggruppare le opzioni in modo che non interferiscano tra loro e come proteggere il documento in modo che vengano compilati solo i campi. Il tutto con un approccio pratico, spiegato passo dopo passo e con alcuni frammenti VBA che ti farà risparmiare tempo.

Preparativi: scheda Sviluppatore, modalità progettazione e livelli

Prima di iniziare, assicurati che la scheda Sviluppo sia visibile: vai su File > Opzioni > Personalizzazione barra multifunzione e seleziona la casella Sviluppo; conferma con OK. Questo passaggio è fondamentale perché da lì accederai a controlli e le loro proprietà.

Word consente di inserire controlli su due livelli diversi: il livello di testo (in linea) e il livello di disegno (mobile). Se li si inserisce normalmente dalla barra degli strumenti di controllo, il controllo viene inserito nel livello di disegno; se si tiene premuto il tasto Maiusc mentre si fa clic sul controllo, lo si inserisce in linea con il testo. Questa differenza è importante perché i controlli in linea si comportano come controlli mobili. Forme in linea e quelli dello strato di disegno come Forme, che influenza il loro posizionamento e il modo in cui vengono accessibili tramite codice.

Un dettaglio di visualizzazione: i controlli ActiveX lasciati sul livello di disegno sono visibili solo nella visualizzazione Layout di stampa o Layout Web. Se non li vedi, cambia la visualizzazione. Inoltre, attiva l'opzione Modalità di progettazione in Developer quando vuoi inserire o configurare controlli e disattivarli per testarne il comportamento effettivo.

Controlli ActiveX e convalida dei dati in Word

Scegliere bene i controlli: contenuto vs. ActiveX

Word offre due grandi famiglie di controlli. Da un lato, ci sono i controlli dei contenuti Controlli (moderni) come Rich Text, Testo normale, Selettore data o Elenco a discesa. D'altra parte, controlli legacy/ActiveX come Pulsanti di opzione o altri input più avanzati. Combinando i due si ottiene flessibilità: contenuti moderni per i campi di testo e data e ActiveX per comportamenti più complessi.

Per testi come Nome, Cognome, Età o Telefono, usa Testo normale se vuoi voci su una sola riga, o Testo avanzato quando devi consentire più righe o formato. Per la data, il controllo del contenuto del tipo Selettore data è perfetto e puoi regolare il formato dal suo proprietà.

Se vuoi che l'utente scelga tra elementi predefiniti (ad esempio, Genere), la configurazione dell'elenco a discesa dei contenuti è semplice: apri le sue Proprietà e aggiungi le voci necessarie. elenchi a discesa puoi mantenere il controllo su ciò che viene riempito ed evitare valori inaspettati.

Quando sono necessarie opzioni di selezione esclusive (una alla volta), utilizzare i pulsanti di opzione (ActiveX). Per selezioni multiple e indipendenti, utilizzare le caselle di controllo. Queste vengono inserite da Strumenti legacy > Controlli ActiveX, quindi puoi modificarne le proprietà e il testo visualizzato accanto.

Uno strumento meno conosciuto ma molto utile è il controllo dei blocchi costitutiviPermette all'utente di scegliere tra blocchi di testo predefiniti (ad esempio, clausole alternative). Inseritelo dalla scheda Sviluppo, posizionate il cursore nel punto desiderato e selezionate il Controllo Contenuto della Galleria dei Blocchi Predefiniti; potrete in seguito configurarne le proprietà in base alle vostre esigenze.

  Distribuisci in massa le app con Microsoft Store per le aziende e Intune

Esempio pratico: modulo con dati anagrafici e sezioni

Un modo chiaro per organizzare un modulo è utilizzare una tabella con due colonne: a sinistra l'etichetta (Nome, Data, ecc.) e a destra il controllo. Non è obbligatorio, ma aiuta ad allineare e mantenere design pulito.

Data: inserisce un controllo di contenuto data. Il testo iniziale della guida "clicca per immettere una data" può essere modificato per maggiore chiarezza. Da Proprietà, è possibile scegliere il formato di visualizzazione (ad esempio, gg/MM/aaaa) per visualizzare correttamente i dati. omogeneo in tutto il documento.

Nome, Cognome, Età e Numero di Telefono: per questi campi, il Testo Semplice è solitamente sufficiente. Scegliete il Testo Rich Text se prevedete interruzioni di riga o desiderate consentire la formattazione. L'importante è scegliere un tipo di testo che si adatti al contesto. comportamento previsto del campo.

Genere: utilizza un elenco a discesa. Vai alle Proprietà e aggiungi ciascuna opzione (ad esempio, Femmina e Maschio). Questo evita confusione e riduce gli errori di digitazione. migliorando la qualità dei dati.

Gruppo sanguigno: per opzioni mutuamente esclusive, inserisci pulsanti di opzione (ActiveX) da Strumenti legacy > Controlli ActiveX > Pulsante di opzione. Modifica il testo visualizzato utilizzando Oggetto pulsante di opzione > Modifica. Aggiungine quanti ne vuoi (A+, A-, B+, B-, AB+, AB-, 0+, 0-), mantenendo coerenza sull'etichettatura.

Hobby o servizi desiderati: Se vuoi consentire la marcatura di più di uno, inserisci Casillas (ActiveX). Questo consente all'utente di selezionare più elementi senza conflitti. È possibile modificarne il testo proprio come si farebbe con i pulsanti di opzione.

Allergie: è comune porre una domanda Sì/No utilizzando i pulsanti di opzione. Importante: se i pulsanti Allergie sono disabilitati quando si seleziona un gruppo sanguigno, è perché Word interpreta che appartengono tutti allo stesso gruppo logico. Soluzione: assegnare un Nome del gruppo diverso. Seleziona ciascun pulsante di opzione Allergie, vai su Proprietà e imposta GroupName = Allergie per comportarti come un gruppo separato.

Dettagli o osservazioni sulle allergie: aggiungi un controllo del contenuto Rich text per consentire descrizioni libere su più righe. Questo è estremamente comodo per commenti contestuali o annotazioni dell'utente.

Proprietà chiave e comportamento di ActiveX

Nei documenti Word, i controlli ActiveX dispongono di eventi di cui è possibile trarre vantaggio. Word implementa in modo nativo GotFocus y Focus perso, e il resto degli eventi specifici di ciascun controllo si comportano come in Microsoft FormsCiò consente di convalidare i campi quando l'utente li inserisce o ne esce.

Una sfumatura importante per la programmazione: all'interno del codice evento di un controllo incorporato nel documento, la parola chiave Me si riferisce al documento, non al controllo. Pertanto, se si desidera agire sul controllo, è possibile utilizzare direttamente il suo nome o spostarsi tra gli oggetti nel documento.

Inoltre, ricorda la distinzione di accesso al codice: i controlli sul livello di testo sono esposti come Forme in linea, mentre quelli sul livello di disegno sono chiamati Forme. La scelta di un livello o dell'altro influenza il modo in cui si iterano e si posizionano i controlli a livello di programmazione.

Quando non si desidera che l'utente modifichi il layout del documento, ma si desidera comunque che interagisca con i controlli, è consigliabile applicare la protezione dalle modifiche. Nelle versioni precedenti, era presente un pulsante "Proteggi modulo" sulla barra Moduli; nelle versioni attuali, il flusso è "Revisione > limitare la modifica, cosa che vedremo in dettaglio più avanti.

  Creare un sistema di voto in PowerPoint: una guida completa

Validazione dei dati: modelli pratici in VBA

La convalida conferisce "intelligenza" al tuo modulo. Puoi evitare lettere nel campo Età, impedire numeri di telefono con troppi caratteri, forzare un formato di data corretto, ecc. La chiave è agganciare gli eventi giusti dal controlla ActiveX (e, se applicabile, macro di contenuto).

Incrementi controllati con uno SpinButton: se si desidera che l'età o una quantità aumenti/diminuisca di uno, aggiungere uno SpinButton (ActiveX) e una casella di testo associata. Il seguente esempio molto semplice, aggiornamenti TextBox1 quando si fa clic sul controllo:

Private Sub SpinButton1_SpinDown()
    Me.TextBox1.Value = Me.TextBox1.Value - 1
End Sub

Private Sub SpinButton1_SpinUp()
    Me.TextBox1.Value = Me.TextBox1.Value + 1
End Sub

Modifica visualizzazione (utile durante il debug): un pulsante può passare alla visualizzazione Stampa e impostare lo zoom, per visualizzare l'output finale del modulo. Questa procedura Click viene eseguita quando viene premuta e regola lo zoom. ventana attiva:

Private Sub cmdChangeView_Click()
    With Me.ActiveWindow.View
        .Type = wdPrintView
        .Zoom.Percentage = 100
    End With
End Sub

Validazione numerica in tempo reale (Età): nell'evento KeyPress/Change della casella di testo Age, filtra tutti i caratteri non numerici. In questo modo, si evitano immissioni errate fin dall'inizio. molto efficace quando si riempie velocemente.

' En un TextBox ActiveX (por ejemplo, TextBoxEdad)
Private Sub TextBoxEdad_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
    If Not (KeyAscii >= 48 And KeyAscii <= 57) And KeyAscii <> 8 Then
        KeyAscii = 0
    End If
End Sub

Convalida della data nell'output del campo: se si utilizza un controllo ActiveX TextBox per la data (o si mappa il valore del controllo data), verificare con IsDate nell'evento LostFocus. In caso di errore, contrassegnare il campo in rosso, visualizzare un avviso e restituire il focus in modo che l'utente possa correggere l'errore. valore.

Private Sub TextBoxFecha_LostFocus()
    If Not IsDate(TextBoxFecha.Text) Then
        TextBoxFecha.BackColor = vbRed
        MsgBox "La fecha no es válida. Usa el selector o formato dd/mm/aaaa.", vbExclamation
        TextBoxFecha.SetFocus
    Else
        TextBoxFecha.BackColor = vbWhite
    End If
End Sub

Numero di telefono a lunghezza fissa: puoi controllare la lunghezza quando esci dal campo e consentire solo cifre. Se hai bisogno di trattini o spazi, puoi inserirli automaticamente nell'evento Change, generando una voce. Uniforme.

Private Sub TextBoxTelefono_LostFocus()
    Dim s As String
    s = Trim(TextBoxTelefono.Text)
    ' Elimina caracteres no numéricos
    Dim i As Long, limpio As String
    For i = 1 To Len(s)
        If Mid$(s, i, 1) >= "0" And Mid$(s, i, 1) <= "9" Then
            limpio = limpio & Mid$(s, i, 1)
        End If
    Next i
    If Len(limpio) < 9 Then
        MsgBox "El teléfono debe tener al menos 9 cifras.", vbInformation
        TextBoxTelefono.SetFocus
    Else
        TextBoxTelefono.Text = limpio
    End If
End Sub

Elenchi controllati: con l'elenco a discesa Contenuto, aggiungi opzioni dalle Proprietà per impedire valori falsificati. In ActiveX (ComboBox), puoi anche carico elementi tramite codice in Document_Open per centralizzare la fonte dati.

Private Sub Document_Open()
    With Me.ComboBoxSexo
        .Clear
        .AddItem "Femenino"
        .AddItem "Masculino"
    End With
End Sub

Avvisi discreti: non tutto deve essere un MsgBox. Cambiare il colore di sfondo, visualizzare un asterisco di avviso vicino alla casella o disabilitare i pulsanti Invia/Stampa finché i campi non sono corretti sono soluzioni meno invadenti e più elegante.

Come proteggere il modulo per evitare modifiche al design

Dopo aver definito e testato i controlli, applica delle restrizioni in modo che l'utente possa compilare il documento ma non modificarlo. Vai a Revisione > limitare la modificaNel pannello laterale, seleziona "Restrizioni di modifica" e scegli "Compilazione moduli" dall'elenco. Quindi, fai clic su "Sì, applica protezione" e, se necessario, imposta una password.

Con la protezione abilitata, l'utente potrà interagire con i controlli (caselle di controllo, scegliere dagli elenchi, digitare nei campi), ma non potrà spostare tabelle o modificare testo fisso. Questa è la soluzione ideale quando si condividono moduli con clienti o altri reparti e si desidera preservare la formato aziendali o ospitarli in Microsoft Onedrive.

  Riparazione: tastiera iPhone lenta o graduale

Se devi modificare nuovamente il progetto, usa "Sospendi protezione" e inserisci la password. Assicurati di salvare una copia senza password in un ambiente sicuro nel caso in cui dovessi annullare le modifiche o reutilizar il documento come modello.

Elementi costitutivi: testo riutilizzabile e controllato

Molte forme hanno testi che cambiano a seconda del caso (ad esempio, frasi alternative). Il controllo di elemento costitutivo consente di offrire all'utente una galleria di testi predefiniti. Inserisci il controllo dal menu Sviluppatore, posizionalo nella posizione appropriata e quindi configurane le Proprietà in modo che puntino alla galleria corrispondente.

Un flusso comune consiste nel preparare più versioni del testo come controlli di contenuto RTF e utilizzare il blocco di base come "contenitore" per scegliere quale inserire. È un modo organizzato per gestire i contenuti. ripetitivo senza dover copiare/incollare manualmente.

Consigli per l'uso, la compatibilità e la manutenzione

Assegna nomi chiari ai tuoi controlli (ad esempio, TextBoxAge, ComboBoxGender). Questo rende il codice più facile da leggere e previene collisioni durante la scrittura delle validazioni. Più il nome è ovvio, più velocemente sarai in grado di mantenere la formula.

Se si utilizzano ActiveX, tenere presente che dipendono dalle impostazioni di sicurezza delle macro. Sui computer con policy restrittive, potrebbe essere necessario modificare il Centro protezione o firmare digitalmente il documento. Questo è importante quando si distribuiscono moduli in ambienti aziendale.

Esegui sempre dei test con la Modalità Progettazione abilitata durante la configurazione e disattivala per vedere il comportamento effettivo. Passa alla visualizzazione Layout di stampa se non vedi i controlli sul livello di disegno; è un controllo rapido che evita confusione e ti fa risparmiare tempo. tiempo.

Per uno sviluppo più avanzato, tieni presente la differenza tra InlineShapes e Shapes quando vi accedi tramite codice, così come la geometria delle tabelle e dei margini. Una piccola modifica all'ancora o al avvolgimento del testo può cambiare completamente il risultato visivo e considerare anche come integrare i flussi con Microsoft Power Automatizza per lavori ripetitivi.

Se hai bisogno di ulteriore documentazione su eventi di controllo specifici (ad esempio, Modifica, Clic, Invio, Esci), il riferimento a Microsoft Forms integra molto bene la guida di Word. Inoltre, Word implementa correttamente GotFocus y Focus perso nei documenti, consentendo di progettare convalide e assistenza contestuale quando si entra o si esce dal campo.

Per gli utenti finali, è consigliabile aggiungere brevi istruzioni accanto ai campi (utilizzando testo segnaposto nei controlli di contenuto). Un modulo con linee guida chiare e convalide discrete riduce gli errori e semplifica il processo. riempito essere più veloce.

Quando condividi i moduli su PDF, ricorda che l'interattività ActiveX viene persa. Se la destinazione è un PDF compilabile, valuta la possibilità di creare i campi direttamente nel PDF con programmi per creare moduli PDF modificabili o mantenere il flusso in Word per sfruttare il Eventi e la logica di convalida.

In Word puoi creare moduli che vanno ben oltre un semplice documento: voci guidate, opzioni raggruppate correttamente, dati puliti fin dal primo tentativo e un design che rimane sotto controllo grazie al protección modifica selettiva.

convalida dei dati in Excel
Articolo correlato:
Come utilizzare la convalida dei dati in Excel