La creazione di un progetto da zero in Visual Basic NET? Lo trovi su Opentraining.it Visual Basic Italia
Guide e Tutorials:indexed
Lavorare con gli oggetti Word (seconda parte)

Premessa

Come già visto nella prima lezione, i requisiti fondamentali per poter interagire con gli oggetti di Word sono due: avere installato una copia di Microsoft Word ed aver precedentemente caricato la libreria oggetti di Word disponibile nella finestra di dialogo Riferimenti. Per una maggiore comprensione, la finestra si apre cliccando sulla voce Progetto del menu principale e selezionando dal menu Progetto che si aprirà, la voce Riferimenti che è quella accompagnata dall'icona dei libri. Basterà poi selezionare la voce Microsoft Word Object Library per poter utilizzare tutti gli oggetti di cui la libreria in questione si compone.


Nella lezione precedente abbiamo visto come creare oggetti applicazione e documenti Word.
Oggi daremo un'occhiata ai metodi utili per aprire, salvare e stampare i documenti stessi. Innanzitutto ricolleghiamoci alla prima lezione: dobbiamo creare un nuovo documento Word con Visual Basic.

Option Explicit
Private Sub Form_Load()
'definisce che oggetto è objWord (in questo caso è
'una nuova applicazione Word)
Dim objWord As Word.Application
'ora che objWord è dichiarato si vuole effettivamente 'aprire questa nuova applicazione Word
Set objWord = New Word.Application
'si rende visibile Word
objword.Visible = True
'definisce che oggetto è objDoc (in questo caso è
'un nuovo documento Word)
Dim objDoc As Word.Document
'ora che objDoc è dichiarato si vuole effettivamente 'aprire questo nuovo documento
Set objDoc = objword.Documents.Add
'rende attivo il documento appena creato
objDoc.Activate
End Sub

Come si vede, per poter lavorare con Word è necessario partire dal generale per giungere al particolare e non viceversa: ricordiamo infatti che prima si dichiara e si imposta l'oggetto Word, poi si passa ai singoli documenti ed ancora (come si vedrà nella prossima lezione) ai caratteri che compongono il documento. Bene, adesso il nostro documento Word è aperto davanti a noi, anche se parzialmente coperto da quella fastidiosa form vuota.
In ogni caso lasciamo lì la form e diciamo che per salvare un documento Word è possibile usare i metodi Save e SaveAs. La differenza che corre tra i due è che mentre col primo metodo (Save) al momento del salvataggio Word chiede all'utente il nome che dovrà avere il documento, col secondo (SaveAs) tutto questo non avviene, semplicemente perchè il nome del file verrà definito da codice.
Vediamo più in dettaglio quanto è stato appena detto:

objDoc.Save

salva il documento chiedendone il nome all'utente. Bisogna però prestare particolare attenzione a questo metodo in quanto nel caso la procedura di salvataggio venisse abortita dall'utente premendo il tasto Annulla della finestra di dialogo di Word Salva con nome, Visual Basic genererà un errore del tipo:
Errore di run-time '4198'
Comando fallito

a dimostrare il fatto che Visual Basic, che aveva in mente di salvare un file, è stato disturbato dal comportamento ostruzionistico dell'utente che l'ha messo in difficoltà. Naturalmente si potrà facilmente gestire l'eventualità aggiungendo all'inizio della sottoprocedura Form_Load() un bel:

On Error Resume Next

Non consideriamo l'ipotesi di gestire l'evento tramite un On Error GoTo... come nell'esempio seguente:

On Error GoTo Errore
.
.
.
Errore:
Msgbox "Si è verificato un errore nel salvataggio del" _
& " file", vbCritical, "VBItalia"

in quanto è semplice comprendere che non si tratta di un vero e proprio errore generato dall'utente (che può liberamente scegliere di abortire l'operazione) quanto piuttosto una sorta di operazione iniziata da Visual Basic ed interrotta in modo forzato. Ecco perchè sarebbe fuori luogo generare un messaggio di qualsiasi natura quando l'utente preme Annulla.
Passiamo ora al secondo metodo, ossia SaveAs che come dice il termine, necessita la definizione del nome del documento da salvare. Ecco un esempio:

objDoc.SaveAs "C:\Documenti\Docum1.doc"

Questo naturalmente non lascerà all'utente la facoltà di decidere con che nome salvare il documento e di conseguenza non apparirà la finestra di messaggio Salva con nome.

E' poi da notare che si può usare la proprietà Saved per controllare se un documento è stato salvato o meno dopo gli ultimi cambiamenti. Tale proprietà può essere usata congiuntamente a Save e SaveAs visti prima. Ecco come salvare un documento solo nell'eventualità in cui questo non sia stato salvato in precedenza:

If objDoc.Saved = True Then
objDoc.SaveAs "C:\Documenti\Docum1.doc"
End If

Adesso passiamo al secondo punto di questa lezione, ossia l'apertura di un documento esistente. Vediamo come fare:

Set objDoc = objWord.Documents.Open("C:\Documenti\Docum1.doc")

Quando il documento non esiste allora Visual Basic genera un messaggio di errore del tipo:
Errore di run-time '5174'
Impossibile trovare il file selezionato nella cartella specificata.
Controllare che il nome del file sia stato digitato correttamente
oppure utilizzare un nome differente.
(C:\Documenti\Docum1.doc)

Adesso sì che possiamo gestire l'errore considerandolo un errore generico:

On Error GoTo Errore
.
.
.
Errore:
Msgbox "Documento inesistente", vbCritical, "VBItalia"

oppure considerandolo in maniera specifica l'errore derivato dall'inesistenza del documento:

If objDoc Is Nothing Then
Msgbox "Documento inesistente", vbCritical, "VBItalia"
End If

Infine passiamo al terzo punto della trattazione: la stampa del documento. Per stampare in Word tramite Visual Basic bisogna usare i metodi PrintOut e PrintPreview. PrintOut stampa semplicemente il documento mentre PrintPreview crea un'anteprima di stampa in modo che l'utente possa visionare la pagina così come verrà stampata prima di avviare il processo di stampa. Ecco come si presenta il metodo PrintOut...

objDoc.PrintOut

...ed il metodo PrintPreview

objDoc.PrintPreview

Appuntamento alla prossima lezione. Grazie a tutti.
Archivio:
Lezioni Commenta questa lezione Invia la tua guida Avviso per le nuove lezioni
Proponi un argomento

Visual Basic Italia© copyright 2000 - tutti i diritti riservati
E-mail:
vbitalia@libero.it