Word: Campo modulo da file esterno

Ipotizziamo di avere molti documenti di Word al cui interno siano contenuti uno (o più) campi modulo “elenco a discesa” con dei valori predefiniti, per esempio i nomi dei maestri di tennis di un Tennis Club.
Se la lista dei nomi variasse, dovremmo correggere uno a uno i campi modulo in ogni documento di Word.
Se invece il campo modulo leggesse i valori da un file estero, allora basterebbe aggiornare tale file, senza dover metter mano ai vari documenti Word.

Ecco i vari passaggi:
– creare un semplice file di testo in locale (o su un percorso remoto) che contenga i nomi dei maestri (uno su ogni riga). Per comodità io l’ho creato su C:\ e l’ho chiamato “nomi_maestri.txt”

Jean Luc Picard
William Riker
Data
Worf
Deanna Troi
Haran Banjo
Beauty Tachibana
Reika Sanjo
Garrison Tokida
---
---

– Da Word aprire l’ambiente di sviluppo macro VBA (ALT+F11), creare un nuovo modulo ed incollarvi il seguente codice:

Sub maestro()
Dim nomi_maestri(10) As String 'deve essere uguale al num righe - 1 nel file txt
Dim num_righe as Integer

num_righe = 10 'deve essere uguale al num righe - 1 nel file txt

Open "c:\nomi_maestri.txt" For Input As #1
i = 0
Do While Not EOF(1)
    Input #1, nomi_maestri(i)
    i = i + 1
Loop
Close #1

ActiveDocument.FormFields("maestro").DropDown.ListEntries.Clear
For i = 0 To num_righe
    With ActiveDocument.FormFields("maestro").DropDown.ListEntries
        .Add nomi_maestri(i)
    End With
Next

End Sub

Attenzione: nel codice VBA abbiamo impostato l’array “nomi_maestri” con il valore 10 (dato che parte da 0, conterrà 11 valori). Quindi il file di testo dovrà contenere almeno 11 righe avvalorate.

– Tornare in Word e creare un nuovo campo modulo “elenco a discesa” settando solo i seguenti valori:

  • Esegui macro in Entrata: maestro
  • Segnalibro: maestro

– Proteggere il documento di Word:

  • Strumenti – Proteggi documento
  • Consenti solo questo tipo di modifiche nel documento: “Compilazione moduli”.

A questo punto, cliccando sul campo modulo verranno mostrati i valori contenuti nel file ti testo esterno.

Allego un file di esempio con la macro VBA già impostata.

Una risposta a Word: Campo modulo da file esterno

  1. Filippo Pieratti scrive:

    Tramite Sandro Barsi, al quale avevo fatto proprio la domanda per “campo modulo da file esterno” ho trovato la tua spiegazione. Veramente utile e cmplimenti.

    Ciao e grazie.

    Filippo

Lascia un commento

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...

%d blogger cliccano Mi Piace per questo: