Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it L'avatar di natasha
    Registrato dal
    Sep 2000
    Messaggi
    1,307

    Aggiornamento di un campo numerico all'apertura di un documento Word

    Buonasera a tutti,
    avrei la necessità di inserire in un documento Word un numero (un campo?) che si incrementi di 1 ogni volta che si apre il documento. Mi è venuto in mente di usare il modello ad oggetti di Word e creare una macro che sull'evento di apertura (Open()?) incrementi il campo, ma oltre la mia scienza non va... qualcuno ha idea di come fare?
    Kisses,

    Nat

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,461
    Hai avuto un ottima idea.

    Scherzi a parte, puoi sfruttare le "Document Properties" (Proprietà Documento).

    Sono quelle proprietà alle quali puoi accedere tramite la finestra di dialogo accessibile con il menu [File|Properties], nella scheda "Personalizza".

    Qui puoi aggiungere una nuova proprietà di tipo "Numero" che conterrà il contatore.

    Quando apri il documento, nell'evento che hai individuato all'interno dell'editor VBA di Word, puoi accedere alla proprietà per incrementarla con un codice simile al seguente
    codice:
    With ActiveDocument
      .CustomDocumentProperties("Contatore").Value = .CustomDocumentProperties("Contatore").Value + 1
    End With
    E' ovvio che il file dovrà essere salvato per memorizzare permanentemente il valore; tuttavia, hai già a disposizione il nuovo valore incrementato che puoi visualizzare nel documento inserendo un campo appropriato tramite la voce di menu [Inserisci|Campo] e selezionando "DocProperty", poi il nome attribuito alla proprietà.

    Per visualizzare il valore aggiornato del campo, devi fare clic con il tasto destro e scegliere "Aggiorna campo", oppure dalla macro potresti eseguire l'aggiornamento automatico di tutti i campi inserendo una riga del tipo
    codice:
    ActiveDocument.Fields.Update
    Questa riga aggiorna tutti i campi nel documento, quindi potresti posizionarla direttamente dopo il codice che esegue l'incremento del tuo contatore.

    Spero di averti dato indicazioni utili.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  3. #3
    Utente di HTML.it L'avatar di natasha
    Registrato dal
    Sep 2000
    Messaggi
    1,307
    Tutto OK, a parte un fatto: come faccio a far sì che la macro venga invocata all'apertura del documento? Ovvero: che evento deve farla scattare?
    Ciao e grazie per l'aiuto!
    Kisses,

    Nat

  4. #4
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,461
    Scrivi il codice nell'editor di Microsoft Visual Basic in Word, aprendo il codice di ThisDocument ed eseguendo la procedura nell'evento Document_Open.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  5. #5
    Utente di HTML.it L'avatar di natasha
    Registrato dal
    Sep 2000
    Messaggi
    1,307
    tutto OK, funziona, grazie!
    Kisses,

    Nat

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.