Pilotage de word par vb

Soyez le premier à donner votre avis sur cette source.

Snippet vu 32 191 fois - Téléchargée 41 fois

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

Ajouter un commentaire Commentaires
Messages postés
22
Date d'inscription
vendredi 19 avril 2002
Statut
Membre
Dernière intervention
23 juillet 2014

Merci , c'est parfait !
Messages postés
1
Date d'inscription
mardi 21 novembre 2006
Statut
Membre
Dernière intervention
27 juin 2010

Comment Importer du Texte a partir d'un fichier Word vers un TextBox (Vb.net)
Messages postés
41
Date d'inscription
mardi 23 janvier 2007
Statut
Membre
Dernière intervention
6 mars 2007

Salut moi je souhaite juste récupérer le texte du document word pour l'afficher!!
qui sait comment faire?
merci
Messages postés
18
Date d'inscription
jeudi 22 janvier 2004
Statut
Membre
Dernière intervention
17 août 2006

c'est con mais moi j'aimerai juste récupérer le nombre de pages du document actif. j'arrive pas à trouver. quelqu'un sait ?
Messages postés
120
Date d'inscription
jeudi 5 mai 2005
Statut
Membre
Dernière intervention
21 décembre 2017

Saluuuuuttt les gars,
Est ce qu'il y a un moyen de sauter la page qui est rempli est d'enregistrer dans la page suivante qui est bien sur vide dans un document.
Merci d'avance.

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.