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 (ottava parte)

Premessa

Come già visto nelle lezioni precedenti, 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.


Eccoci giunti all'ottava parte del corso di Visual Basic per Word. Questa volta vedremo un aspetto di Word sicuramente molto divertente: l'Assistente di Office. Essendo denominato "Assistente di Office" e non "Assistente di Word", sarà necessario compiere delle piccole operazioni prima di poter utilizzare l'oggetto. E' infatti pressochè impossibile dichiarare un assistente di Word, in quanto non esiste l'oggetto in sè. Viene mutuato dalla libreria di Office.
Dunque, riprendendo più o meno i caratteri essenziali delle lezioni precedenti, creiamo un piccolo progetto con tutte le funzionalità di base che c'interessano.
Innanzitutto deve poter aprire una nuova applicazione Word ed un nuovo documento Word nel momento in cui il nostro programma Visual Basic sarà avviato.
Creeremo quindi gli oggetti cari al motore grammaticale che abbiamo analizzato in precedenza (objWord, che identifica una nuova applicazione Word ed objDoc che sta ad indicare un nuovo documento della sessione di Word).
Dichiariamo quindi objWord in questo modo:

Dim objWord As Word.Application

ed objDoc in questo:
Dim objDoc As Word.Document

Questo significa che potremo lavorare con questi due oggetti, che in realtà sono molto meno astratti di quanto sembra. Il termine Application infatti non è qualcosa di etereo come può far credere. L'oggetto applicazione è la nuova sessione di Word aperta, senza alcun documento caricato. Si può pensare che allora objWord sia Word senza nessun documento a disposizione. Il termine Document è invece molto più semplice da intuire in quanto rappresenta il documento bianco che si apre quando si seleziona la voce "Nuovo" (oppure quando si carica un documento preesistente).
Torniamo all'Assistente. Il passo in più da compiere rispetto al progetto Motore Grammaticale che per varie lezioni è stato il nostro oggetto di studio è quello di caricare la libreria di oggetti di Office. Per far questo, cliccare su Progetto, quindi selezionare la voce Riferimenti. Scorrere la finestra delle librerie disponibili e scegliere "Microsoft Office x.0 Library". Contrassegnare la casella con un bel segno di spunta e dare l'OK alla finestra che quindi si chiuderà.
Da ora l'oggetto "Assistente di Office" è a completa disposizione.
Adesso sorge un problema ulteriore: dobbiamo creare un oggetto interno al nostro progetto che faccia parte della categoria degli "Assistenti di Office". Scegliamo un nome a caso, qualcosa di rappresentativo, come objAssistente.
Dichiariamo objAssistente più o meno come abbiamo fatto per objWord e objDocument, ricordando stavolta di non richiamare la libreria di Word ma quella di Office:

Dim objAssistente As Office.Assistant

Ricapitoliamo la sezione generale delle dichiarazioni della Form principale (nonchè unica), ricordando di aggiungere un (in)utile Option Explicit:

Dim objWord As Word.Application
Dim objDoc As Word.Document
Dim objAssistente As Office.Assistant
Option Explicit

Ora che abbiamo a disposizione le dichiarazioni necessarie, apriamo una nuova sessione di Word e carichiamo al suo interno un nuovo documento. Nell'ipotesi in cui si voglia compiere queste due operazioni all'avvio della nostra applicazione, potremo inserire il blocco di codice all'interno dell'evento Load di Form1:

Private Sub Form_Load()
Set objWord = New Word.Application
objWord.Visible = True
Set objDoc = objWord.Documents.Add
objDoc.Activate
Set objAssistente = objWord.Assistant
objAssistente.Application.Activate
objAssistente.Visible = True
End Sub

Che cosa abbiamo fatto? La prima linea rappresenta l'evento nel quale abbiamo inserito il codice, che corrisponde all'eventualità nella quale l'utente avvii l'applicazione (o meglio che la finestra Form1 venga caricata).
La seconda linea dice al programma di creare una nuova sessione Word. Quando sentirete che il vostro computer sta lavorando vuol dire che è giunto a questa operazione.
La terza linea apre un nuovo documento Word vuoto e lo posiziona dentro la finestra di Word appena creata.
La quarta linea attiva il documento Word (cosa peraltro non necessaria in quanto essendo il documento corrente anche l'unico documento, sarà necessariamente sempre attivo).
La quinta riga dice che objAssistente, facente parte della categoria degli "Assistenti di Office", non è un Assistente di Excel, o di qualsiasi applicazione Office, ma è un Assistente in modo specifico nonchè inequivocabile di Word.
L'ultima riga di codice mostra l'assistente all'interno del documento. La proprietà Visible impostata su True non provoca nessuna animazione. L'Assistente comparirà dal nulla nella posizione predefinita all'interno del documento.
Servirà adesso gestire l'evento secondo il quale l'utente chiude l'applicazione scritta in Visual Basic. Se infatti non viene contemplato l'evento o comunque non si imposta la chiusura di objWord, alla chiusura del progetto rimarrà aperta la sessione Word, se non si imposta la chiusura di objDoc, apparirà la finestra di messaggio che chiede se si ha intenzione di salvare o meno il documento.
Allora scriviamo il seguente blocco di codice:

Private Sub Form_Unload(Cancel As Integer)
'chiude il documento senza salvarlo
objDoc.ActiveWindow.Close (False)
'chiude Word senza salvare nulla
objWord.Quit (False)
End Sub

Che cosa si può far fare all'Assistente? Per impostare le animazioni dell'assistente, si può aggiungere questa linea di codice:

objAssistente.Animation = **Animazione**

Dove **Animazione** è una delle seguenti possibili animazioni messe a disposizione da Word:
msoAnimationAppear E' l'animazione attivata quando si fa apparire l'Assistente premendo sull'icona del punto interrogativo nel fumetto giallo sulla barra menu di Word
msoAnimationBeginSpeaking L'Assistente alza le sopracciglia come se stesse iniziando a parlare
msoAnimationCharacterSuccessMajor L'Assistente schiocca...la graffetta, mostrando di aver trovato una soluzione ad un certo problema
msoAnimationCheckingSomething Divertentissima animazione che mostra l'Assistente diventare una scatola mentre gli occhi vagano qua e là in cerca di qualcosa
msoAnimationDisappear L'Assistente fa l'occhiolino come prima di scomparire. In realtà però l'animazione non comprende la scomparsa dell'oggetto Assistente di Office.
msoAnimationEmptyTrash L'Assistente diventa una spirale che ruotando vorticosamente si porta dietro tutti i documenti fino a farli scomparire
msoAnimationGestureDown L'Assistente fa un gesto indicando il basso
msoAnimationGestureLeft L'Assistente fa un gesto indicando verso sinistra
msoAnimationGestureRight L'Assistente fa un gesto indicando verso destra
msoAnimationGestureUp L'Assistente fa un gesto indicando verso l'alto
msoAnimationGetArtsy L'Assistente diventa una strana opera d'arte
msoAnimationGetAttentionMajor L'Assistente diventa un punto esclamativo
msoAnimationGetAttentionMinor L'Assistente fa un gesto indicando di seguirlo
msoAnimationGetTechy Altra divertente animazione continua che mostra Clippy (ossia il nome assegnato alla graffetta da Word) diventare un grafico, mentre gli occhi fluttuano su tale grafico
msoAnimationGoodbye L'Assistente saluta e se ne va
msoAnimationGreeting L'Assistente si alza da sdraiato e saluta
msoAnimationIdle Recupera l'animazione di default ossia le occhiate a destra e a sinistra
msoAnimationListensToComputer L'Assistente ascolta delle onde sonore provenienti dal computer
msoAnimationLookDown L'Assistente guarda verso il basso
msoAnimationLookDownLeft L'Assistente guarda in basso a sinistra
msoAnimationLookDownRight L'Assistente guarda in basso a destra
msoAnimationLookLeft L'Assistente guarda verso sinistra
msoAnimationLookRight L'Assistente guarda verso destra
msoAnimationLookUp L'Assistente guarda in alto
msoAnimationLookUpLeft L'Assistente guarda in alto a sinistra
msoAnimationLookUpRight L'Assistente guarda in alto a destra
msoAnimationPrinting L'Assistente diventa una coppia di rulli tra i quali passa la carta da stampare
msoAnimationSaving L'Assistente diventa una scatola che aprendosi fa cadere gli occhi al suo interno
msoAnimationSearching Sicuramente l'animazione più divertente: l'Assistente cerca i documenti...da vedere!
msoAnimationSendingMail L'Assistente diventa una lettera e poi si spedisce da solo
msoAnimationThinking L'Assistente diventa un atomo con gli elettroni che gli orbitano intorno
msoAnimationWorkingAtSomething Altra stupenda animazione: l'Assistente diventa una pala che spala i mucchi di documenti
msoAnimationWritingNotingSomething L'Assistente annota qualcosa su un blocco

Terminato il lungo elenco di animazioni, vediamo come far aprire il fumetto. Col seguente codice si aprirà la ricerca di una parola nella guida di Word:

objAssistente.Help

con queste linee invece si indicano le posizioni dell'assistente, nella fattispecie si danno le coordinate orizzontali e verticali

objAssistente.Left = **X** objAssistente.Top = **Y**

dove **X** sono le coordinata orizzontali e **Y** quelle verticali.

Archivio:ndexed
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