Alessandro Del Sole's Blog

{ A programming space about Microsoft® .NET® }
posts - 1909, comments - 2047, trackbacks - 352

My Links

News

Your host

This is me! Questo spazio è dedicato a Microsoft® .NET®, di cui sono molto appassionato :-)

Cookie e Privacy

Microsoft MVP

My MVP Profile

Microsoft Certified Professional

Microsoft Specialist

Xamarin Certified Mobile Developer

Il mio libro su VB 2015!

Pre-ordina il mio libro su VB 2015 Pre-ordina il mio libro "Visual Basic 2015 Unleashed". Clicca sulla copertina per informazioni!

Il mio libro su WPF 4.5.1!

Clicca sulla copertina per informazioni! E' uscito il mio libro "Programmare con WPF 4.5.1". Clicca sulla copertina per informazioni!

These postings are provided 'AS IS' for entertainment purposes only with absolutely no warranty expressed or implied and confer no rights.
If you're not an Italian user, please visit my English blog

Le vostre visite

I'm a VB!

Guarda la mia intervista a Seattle

Follow me on Twitter!

Altri spazi

GitHub
I miei progetti open-source su GitHub

Article Categories

Archives

Post Categories

Image Galleries

Privacy Policy

Formattare il testo di un documento Word 2007 con i VSTO e VB 2008

In questo post voglio mostrare un piccolissimo esempio di come, da codice Visual Basic 2008, sia possibile formattare il testo di un documento di Microsoft Word 2007, grazie ai Visual Studio Tools for Office.

In primo luogo, il progetto da creare è a livello di documento (quindi Word 2007 Document). In secondo luogo, alcune considerazioni:

  • un documento Word è costituito, essenzialmente, da paragrafi, rappresentati da oggetti Paragraph. Il testo contenuto in ciascun Paragraph è rappresentato da oggetti Range;
  • per ciascun oggetto Range è poi possibile impostare le proprietà del testo.

A creazione del progetto completata, digitate del testo nel documento e aggiungete un pulsante dalla toolbox, come nella seguente figura:

Dopodichè, passate al file di codice. Il seguente snippet imposta alcune proprietà dei due paragrafi:

    Private Sub FormatButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles FormatButton.Click

 

        'ottiene l'istanza del documento attivo

        Dim doc As Document = Application.ActiveDocument

 

        'Ottiene i primi due paragrafi, il cui contenuto è costituito da oggetti Range

        Dim paragrafo1 As Range = doc.Paragraphs(1).Range

        Dim paragrafo2 As Range = doc.Paragraphs(2).Range

 

        'Assegna le proprietà

        With paragrafo1

            .Font.Name = "Tahoma"

            .Font.Size = "14"

            .Font.Bold = 2

            .Font.Color = WdColor.wdColorBlue

        End With

 

        With paragrafo2

            .Font.Name = "Tahoma"

            .Font.Size = "12"

            .Font.Color = WdColor.wdColorBrown

            .Font.Italic = 2

        End With

Il frammento seguente, conclusivo del gestore dell'evento Click del pulsante, richiede all'utente se gradisce le modifiche. In caso contrario, permette di annullarle, grazie al metodo Undo della classe ThisDocument, che riceve il numero di azioni da annullare:

        Dim result As System.Windows.Forms.DialogResult

 

        result = MessageBox.Show("Testo formattato. Annullare?", "Annulla", MessageBoxButtons.YesNo, MessageBoxIcon.Question)

 

        Select Case result

            Case Is = DialogResult.Yes

                'Annulla le ultime 8 azioni (4 per 2 paragrafi)

                Me.Undo(Times:=8)

            Case Else

                Exit Sub

        End Select

    End Sub

Se avviate la soluzione e fate clic sul pulsante, questo è il risultato ottenuto:

Ovviamente le personalizzazioni possono essere molto più complesse ma, come spesso preferisco nei miei post, è bene focalizzare l'attenzione sul concetto prima che sulla complessità.

Alessandro

Print | posted on venerdì 7 marzo 2008 22:45 | Filed Under [ Visual Basic Visual Studio Tools for Office ]

Powered by:
Powered By Subtext Powered By ASP.NET