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

Premessa

Come già visto nella prima lezione e abbiamo ripetuto nella seconda, 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 salvare, aprire, stampare un documento Word in Visual Basic ed abbiamo imparato a sviluppare un'elementare applicazione che sfrutti Visual Basic per interagire coi documenti di Word.
Con la lezione di oggi entreremo più nello specifico nell'elaborazione di un testo per Word. Ecco come. Il semplice inserimento di un testo in un documento è abbastanza agevole. Basta infatti usare i metodi InsertAfter e InsertParagraphAfter. Vediamoli ora uno per uno.
InsertAfter inserisce parola per parola la frase che intendete trasferire nel documento. Per fare un semplice esempio:

'inserisce in un documento la frase Testo!!!
objDoc.ActiveWindow.Selection.InsertAfter = "Testo!!!"

E dunque una semplice applicazione di apertura Word / creazione di un nuovo documento / inserimento di un testo in questo documento, potrà essere strutturato in questo modo:

Private Sub Form_Load()
Dim objDoc As Word.Document
Set objword = New Word.Application
objword.Visible = True
Set objDoc = objword.Documents.Add
objDoc.Activate
objDoc.ActiveWindow.Selection.InsertAfter "Questo" _
& "è il mio testo."
End Sub

Bene, se adesso volessimo inserire un paragrafo basterà richiamare il metodo InsertParagraphAfter in questo modo:

objDoc.ActiveWindow.Selection.InsertParagraphAfter

Che cosa fa questo metodo? Chiunque conosce l'HTML potrà associare senza errore il metodo InsertParagraphAfter con il comando BR, necessario per far andare a capo la frase. Ecco un esempio ancora più esplicativo di tante parole. E' comprensibile anche soltanto dando un'occhiata al codice:

Private Sub Form_Load()
Dim objDoc As Word.Document
Set objword = New Word.Application
objword.Visible = True
Set objDoc = objword.Documents.Add
objDoc.Activate
objDoc.ActiveWindow.Selection.InsertAfter "Questa" _
& " frase deve rimanere singola"
objDoc.ActiveWindow.Selection.InsertParagraphAfter
objDoc.ActiveWindow.Selection.InsertAfter "Queste tre" _
& " frasi "
objDoc.ActiveWindow.Selection.InsertAfter "possono" _
& " stare sulla "
objDoc.ActiveWindow.Selection.InsertAfter "stessa riga"
End Sub

E' intuibile il fatto che l'utilizzo di un InsertParagraphAfter fa andare a capo, mentre se a questo si fanno seguire più InsertParagraphAfter, Word lascerà tante righe bianche quante volte è stato ripetuto il comando. L' esempio:

objDoc.ActiveWindow.Selection.InsertAfter "Prima frase"
objDoc.ActiveWindow.Selection.InsertParagraphAfter
objDoc.ActiveWindow.Selection.InsertParagraphAfter
objDoc.ActiveWindow.Selection.InsertParagraphAfter
objDoc.ActiveWindow.Selection.InsertAfter "Seconda frase"

lascerà due righe di spazio tra la prima e la seconda frase.
Naturalmente col metodo di cui abbiamo appena discusso ce n'è anche uno simile ma di diverso comportamento: InsertParagraphBefore che a differenza del precedente aggiunge una riga vuota all'inizio del testo, proprio sopra la prima frase. Nel caso in cui si volesse aggiungere un testo in una specifica posizione del documento sarà necessario utilizzare i cosiddetti segnalibri. Mentre utilizzando Microsoft Word si possono inserire i segnalibri tramite il menu Inserisci/Segnalibro, con Visual Basic si può utilizzare la collezione Bookmarks per identificare un segnalibro. Per fare ciò creiamo come abbiamo fatto nell'esempio precedente, un nuovo documento inserendovi del testo qualsiasi:

Private Sub Form_Load()
Dim objDoc As Word.Document
Set objword = New Word.Application
objword.Visible = True
Set objDoc = objword.Documents.Add
objDoc.Activate
objDoc.ActiveWindow.Selection.InsertAfter "Questa è la prima frase"
objDoc.ActiveWindow.Selection.InsertParagraphAfter
objDoc.ActiveWindow.Selection.InsertAfter "Queste è la seconda frase"
objDoc.ActiveWindow.Selection.InsertParagraphAfter
objDoc.ActiveWindow.Selection.InsertAfter "Questa è la terza frase"
objDoc.ActiveWindow.Selection.InsertParagraphAfter
objDoc.ActiveWindow.Selection.InsertAfter "Questa è la quarta frase"
objDoc.ActiveWindow.Selection.InsertParagraphAfter
objDoc.Bookmarks.Add("a").Range.Text = "Segnalibro"
End Sub

Così facendo viene aggiunto un nuovo dato, ossia la quinta frase, nella posizione del segnalibro. Naturalmente questo presuppone che il documento che è stato aperto in precedenza o creato è dotato di segnalibri.
Passiamo adesso ai caratteri del documento. La discussione è piuttosto lunga e visto che non troverete tanto facilmente una guida che ne elenchi le proprietà, vedremo di fare il tutto con la massima precisione.
La prima cosa da sapere è che il tipo di carattere si determina tramite questo comando:

objDoc.ActiveWindow.Selection.Font.Name = "NomeFont"

Dove NomeFont sta naturalmente ad indicare il nome del tipo di carattere che volete assegnare al testo selezionato. NomeFont può quindi essere: Verdana, Tahoma, Arial, Courier New, e così via. Font ha però diverse proprietà interessanti. Vediamole una per una.

AllCaps restituisce il testo selezionato tutto in lettere maiuscole se AllCaps è True o com'è stata scritta se AllCaps è False
Animation attiva le animazioni sul testo impostabili da Microsoft Word. Tali animazioni sono:
  • wdAnimationBlinkingBackground : fa lampeggiare il testo
  • wdAnimationLasVegasLights : lucette sul contorno del testo (!?!)
  • wdAnimationMarchingBlackAnts : lineette che si seguono sul contorno del testo
  • wdAnimationMarchingRedAnts : come sopra ma con lineette rosse
  • wdAnimationNone : disattiva ogni animazione sul testo
  • wdAnimationShimmer : effetto sdoppiamento di ogni singolo carattere
  • wdAnimationSparkleText : brillantini lungo tutto il testo
  • Bold restituisce il testo selezionato in grassetto se Bold è True o normale se è False
    ColorIndex colora il testo selezionato
  • wdAuto : colora il testo in automatico
  • wdBlack : colora il testo di nero
  • wdBlue : colora il testo di blu
  • wdBrightGreen : colora il testo di verde chiaro
  • wdDarkBlue : colora il testo di blu scuro
  • wdDarkRed : colora il testo di rosso porpora
  • DoubleStrikeThrough restituisce il testo selezionato barrato con riga doppia se la proprietà è True o normale se è False
    Emboss restituisce il testo selezionato con un effetto ombra su ogni carattere se la proprietà è True o normale se è False
    Engrave effetto sdoppiamento del testo se la proprietà è True o normale se è False
    Hidden nasconde il testo se la proprietà è True o normale se è False
    Italic restituisce il testo selezionato in corsivo se la proprietà è True o normale se è False
    Kerning accetta soltanto valori numerici
    Name imposta il nome del tipo di carattere. Vedere l'esempio precedente per una spiegazione più dettagliata di questa proprietà
    NameAscii imposta il nome del tipo di carattere utilizzando i codici Ascii
    Outline imposta il carattere in un particolare stile grafico
    Parent sostituisce il testo selezionato con un testo di nuova impostazione
    Reset cancella tutti i fonts precedentemente applicati sul testo e lo rende nuovamente normale
    Scaling accetta solo valori numerici ed imposta la scala che verrà applicata nella definizione e di altezza e di larghezza del carattere
    Size imposta le dimensioni del carattere
    SmallCaps ritorna il testo selezionato tutto in caratteri minuscoli se la proprietà è True o com'è stato scritto se è False
    Spacing accetta solo valori numerici. Imposta lo spazio che corre tra un carattere e l'altro
    Strikethrough ritorna il testo selezionato barrato da una riga singola se la proprietà è True o com'è stato scritto se è False
    Subscript ritorna il testo selezionato come pedice se la proprietà è True o come testo normale se è False
    Superscript ritorna il testo selezionato come apice se la proprietà è True o come testo normale se è False
    Underline ritorna il testo selezionato sottolineato se la proprietà è True o come testo normale se è False

    Nel corso della prossima lezione continueremo a vedere i metodi più interessanti che possono essere utilizzati in collegamento agli oggetti di Word.
    Alla prossima.


    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