Pilotage de word par vb

Contenu du snippet

Permet par du code ActiveX de piloter totalement Word 97 ou 6.0.

Source / Exemple :


'Enonciation des variables
Dim docword As New Word.Application

Private Sub Command1_Click()

'ouvre Word
Set docword = CreateObject("word.application")

'True pour word visible et false pour le mettre en arrière plan
    docword.Visible = True

    docword.DisplayAlerts = False   'évite les erreurs de traitement
    docword.Documents.Add 'ajoute un document vierge

'on va écrire
    docword.Selection.TypeText Text:="Comment piloter Word97"

'faire un tabulation
    docword.Selection.TypeText Text:=vbTab
    
'revenir à la ligne
    docword.Selection.TypeParagraph
'sauter une ligne
    docword.Selection.TypeParagraph
    docword.Selection.TypeParagraph
    
'zoomer
    docword.ActiveWindow.ActivePane.View.Zoom.Percentage = 100
    
'mise en forme
'ATTENTION un petit conseil mes petits amis, c'est de d'abord mettre le format
'avant de d'insérer le texte donc si vous avez bien compris vous faites :
'docword.selection.paragraphformat.alignement = wdalignparagraphcenter
'docword.selection.typetext text:="blablabla"

'centré
    docword.Selection.ParagraphFormat.Alignment = wdAlignParagraphCenter
'aligné à gauche
    docword.Selection.ParagraphFormat.Alignment = wdAlignParagraphLeft
'justifié
    docword.Selection.ParagraphFormat.Alignment = wdAlignParagraphJustify
'aligné à droite
    docword.Selection.ParagraphFormat.Alignment = wdAlignParagraphRight

'mettre le texte en souligné
    If docword.Selection.Font.Underline = wdUnderlineNone Then
        docword.Selection.Font.Underline = wdUnderlineSingle
    Else
        docword.Selection.Font.Underline = wdUnderlineNone
    End If
    
'changer la taille de la police
    docword.Selection.Font.Size = xx 'xx est une valeur numérique
    
'changer la police
    docword.Selection.Font.Name = "Arial"

'mettre en gras
    docword.Selection.Font.Bold = wdToggle
 
'mettre en italique
    docword.Selection.Font.Italic = wdToggle

'souligner le texte
    If docword.Selection.Font.Underline = wdUnderlineNone Then
        docword.Selection.Font.Underline = wdUnderlineSingle
    Else
        docword.Selection.Font.Underline = wdUnderlineNone
    End If

'changer la couleur de la police
    docword.Selection.Font.ColorIndex = wdRed 'ici en rouge
    docword.Selection.Font.ColorIndex = wdAuto 'ici en couleur automatique
    
'changer la couleur de fond du document
    docword.ActiveDocument.Background.Fill.ForeColor.RGB = RGB(xxx, xxx, xxx)
    'où xxx est une valeur comprise en 0 et 255 (256 couleurs)
    docword.ActiveDocument.Background.Fill.Visible = msoTrue
    docword.ActiveDocument.Background.Fill.Solid

'INSERER UN OBJET
'insérer une image à partir du fichier
    docword.Selection.InlineShapes.AddPicture FileName:="C:\cool.bmp", _
        LinkToFile:=False, SaveWithDocument:=True

'insérer un graphique type EXCEL
    docword.ActiveDocument.Shapes.AddOLEObject Anchor:=Selection.Range, _
        ClassType:="MSGraph.Chart.8", LinkToFile:=False, DisplayAsIcon:=False
'insérer un graphique à partir d'un fichier EXCEL existant
    docword.ActiveDocument.Shapes.AddOLEObject ClassType:= _
        "MSGraph.Chart.8", FileName:="c:\cool.xls", LinkToFile:=False, _
        DisplayAsIcon:=False, Left:=xxx, Top:=xxx 'xxx est une valeur numérique
'linktofile:=True permet d'ouvrir le fichier EXCEL lorsque vous double-cliquez sur
'le graphique.
'left, top, ainsi que height et width définisse la position et la taille du graph

'insérer un WORDART
    docword.ActiveDocument.Shapes.AddTextEffect(msoTextEffect28, "COOL", _
        "Impact", 36#, msoFalse, msoFalse, 261.35, 157.5).Select

'insérer un tableau
    docword.ActiveDocument.Tables.Add Range:=Selection.Range, _
    NumRows:=2, NumColumns:=2
    'pour écrire dans le tableau utiliser le typetext à la suite
    'de cette fonction. Pour se déplacer, utiliser :
    docword.Selection.MoveRight Unit:=wdCell
    docword.Selection.MoveUp Unit:=wdLine, Count:=1
    docword.Selection.MoveDown Unit:=wdLine, Count:=1
    
'insérer un lien hypertexte
    docword.ActiveDocument.Hyperlinks.Add Anchor:=Selection.Range, Address:= _
        "http://www.cool.com/", SubAddress:=""
        
'effacer l'objet insérer
    docword.Selection.ShapeRange.Delete
    
'insérer la date
    docword.Selection.InsertDateTime DateTimeFormat:="jjjj j MMMM aaaa", _
        InsertAsField:=False
    
'insérer un signet
    With docword.ActiveDocument.Bookmarks
        .Add Range:=Selection.Range, Name:="cool"
        .DefaultSorting = wdSortByLocation
                            'ou = wdsortbyname -> indexer par nom
        .ShowHidden = False
    End With
    
'enregistrer le document sous cool.doc
    docword.ActiveDocument.SaveAs FileName:="c:\cool.doc"

'quitter word
    docword.Application.Quit

End Sub

Conclusion :


Avant de taper votre code, assurer vous que les références suivantes sont cochées sous votre VB :
- Microsoft Office 8.0 object library
- Microsoft Word 8.0 object library
Ce code a été réalisé sous VB 6.0 Professionnal et sous Windows ME.

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.