Newsgroup: it.comp.lang.visual-basic
Titolo: AIUTO!!!

Vorrei creare un documento di Word con un campo che si incrementa di un
numero ogni volta che apro questo documento.
Presumo che col modulo di Visual Basic sia facilissimo ma purtroppo non
conosco questo linguaggio.
Qualcuno mi può dare istruzioni dettagliate?
Grazie

 Qualcuno mi può dare istruzioni dettagliate?
Dobbiamo fare una premessa: parli di ottenere un documento che contenga nel
testo, in una posizione decisa da te, una _parola_ che rappresenti il numero
delle volte che tale documento e` stato aperto. Se volessimo salvare tale
informazione nel documento dovremmo effettuare un salvataggio ad ogni
apertura ma questo pero` potrebbe non andarti bene perche' cosi` facendo
perderebbe senso il valore del contatore interno dei salvataggi, per
intenderci quello che ottieni col codice di campo:
    { INFO RevNum }
Ne' potremmo usare proprio questo per il tuo scopo perche' se e` vero che
possiamo, da codice, forzare un salvataggio ad ogni apertura, a questi
salvataggi _automatici_ si sommerebbero i salvataggi _volontari_ cosi` che
RevNum non rappresenterebbe piu` il _numero delle aperture_.
Quindi devi decidere se ti sta bene incrementare un contatore ad ogni
apertura con conseguente salvataggio.
Se questo non ti sta bene, l'altra strada e` _conservare_ il valore di tale
contatore in una posizione _esterna_ al documento: in un file di testo, in
un altro documento di word, nel registro di sistema...
Personalmente preferirei questa seconda ipotesi ed il valore del contatore
lo conserverei nel registro di sistema, ma sei tu che devi decidere.
Una soluzione potrebbe essere la seguente:
    File
    > Nuovo...
      Generale
      Documento vuoto
      Crea nuovo
      (.) Documento
      [Ok]
Digita:
    Questo documento e` stato aperto   volte.
ATTENZIONE: fra "aperto" e "volte" digita 3 e soltanto 3 spazi.
Seleziona i 3 spazi quindi:
    Inserisci
    > Segnalibro...
      Nome segnalibro:
      ConteggioAperture
      [Aggiungi]
    Strumenti
    > Macro
      > Visual Basic Editor
    Visualizza
    > Gestione progetti
      Project (Documento1)
      ThisDocument
    Visualizza
    > Codice
Incolla il codice seguente escluse le righe "INIZIO" e "FINE":
*** INIZIO ***************************************************
Option Explicit
Private Sub Document_Open( _
)
  Const c_strBookmark As String = "ConteggioAperture"
  Const c_strSection  As String = "InformazioniDocumento"
  Const c_strKey      As String = c_strBookmark
  Dim strAppName            As String
  Dim lngConteggioAperture  As Long
  strAppName = FullName
  lngConteggioAperture _
    = GetSetting( _
      AppName:=strAppName _
    , Section:=c_strSection _
    , Key:=c_strKey _
    , Default:="0")
  SaveSetting _
      AppName:=strAppName _
    , Section:=c_strSection _
    , Key:=c_strKey _
    , Setting:=CStr(lngConteggioAperture + 1)
  lngConteggioAperture _
    = GetSetting( _
      AppName:=strAppName _
    , Section:=c_strSection _
    , Key:=c_strKey _
    , Default:="0")
  With Bookmarks(c_strBookmark)
    Range(.Start + 1, .End - 1).Text = lngConteggioAperture
  End With
  Saved = True
End Sub
*** FINE *****************************************************
    Debug
    > Compila Project
    File
    > Salva Documento1
Facci sapere come e` andata.
--
Ciao.
Maurizio
--------
?SPQR(C)
 X
--------