Pilotage de word par vb

Soyez le premier à donner votre avis sur cette source.

Snippet vu 32 319 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
cs_Kyler Messages postés 22 Date d'inscription vendredi 19 avril 2002 Statut Membre Dernière intervention 23 juillet 2014
23 juil. 2014 à 16:06
Merci , c'est parfait !
tsditetouan Messages postés 1 Date d'inscription mardi 21 novembre 2006 Statut Membre Dernière intervention 27 juin 2010
27 juin 2010 à 14:14
Comment Importer du Texte a partir d'un fichier Word vers un TextBox (Vb.net)
cs_into Messages postés 41 Date d'inscription mardi 23 janvier 2007 Statut Membre Dernière intervention 6 mars 2007
8 mars 2007 à 11:04
Salut moi je souhaite juste récupérer le texte du document word pour l'afficher!!
qui sait comment faire?
merci
zeOffspring Messages postés 18 Date d'inscription jeudi 22 janvier 2004 Statut Membre Dernière intervention 17 août 2006
8 juin 2006 à 10:16
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 ?
kokise Messages postés 120 Date d'inscription jeudi 5 mai 2005 Statut Membre Dernière intervention 21 décembre 2017
22 nov. 2005 à 11:13
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.
Afficher les 12 commentaires

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.