Écrit & mise en forme de document word à l'aide de VBA excel
Je suis en train d'écrire un document word à l'aide de VBA excel. Je peux créer un doc word, écrire du texte, changer de style n'est pas un problème. Ce que je veux faire est le centre du texte, je ne peux pas pour la vie de me comprendre. Voici le code que j'utilise pour écrire la doc:
Set wrdApp = CreateObject("Word.Application")
wrdApp.Visible = False
Set wrdDoc = wrdApp.Documents.Add
'Set up page settings
With wrdApp.ActiveDocument.PageSetup
.Orientation = wdOrientLandscape
.TopMargin = wrdApp.InchesToPoints(0.98)
.BottomMargin = wrdApp.InchesToPoints(0.98)
.LeftMargin = wrdApp.InchesToPoints(0.98)
.RightMargin = wrdApp.InchesToPoints(0.98)
End With
'End set up page settings
With wrdDoc
.Styles.Add ("SHeading")
.Styles.Add ("StdText")
With .Styles("SHeading").Font
.Name = "Arial"
.Size = 14
.Bold = False
.Underline = True
End With
With .Styles("StdText").Font
.Name = "Arial"
.Size = 8
.Bold = False
.Underline = False
End With
End With
wrdApp.Selection.Collapse Direction:=wdCollapseEnd
wrdApp.Selection.TypeParagraph
wrdApp.Selection.Style = wrdDoc.Styles("SHeading")
wrdApp.Selection.TypeText Text:="Text Line 1"
wrdApp.Selection.TypeParagraph
wrdApp.Selection.Style = wrdDoc.Styles("StdText")
wrdApp.Selection.TypeText Text:="Text Line 2: "
wrdApp.Selection.TypeParagraph
Tout ce que je veux faire, c'est le centre de la "Ligne de Texte 1 texte". J'ai googlé et j'ai essayé toutes sortes de solutions en vain.
Des idées?
Mise à JOUR:
Trier, c'est aussi simple que d'avoir besoin de la MS Word Objet de référence de la Bibliothèque sélectionnée dans VBA, puis le centrage fonctionne très bien!
Essayez d'enregistrer une macro lors de centrage de texte existant du Mot et de voir quel Mot utilise.
OriginalL'auteur Kyo | 2014-03-21
Vous devez vous connecter pour publier un commentaire.
Vous devez définir la L'alignement propriété de la ParagraphFormat objet de la Style.
Il doit être l'un des WdParagraphAlignment énumérations.
Une fois, j'ai ajouté la référence en vba pour ms word puis cette réponse fonctionne très bien.
Je n'ai même pas envisager que les constantes ne fonctionnent pas dans les autres applications Office. En outre, la documentation ne précise pas quels sont les numéros les constantes représentent. Parfois, je me trouve de l'ouverture de l'application cible et MsgBoxing les constantes juste pour voir ce qu'ils signifient réellement, comme suit: MsgBox wdAlignParagraphCenter. Dans ce cas, wdAlignParagraphCenter signifie 1. Ainsi, vous pouvez également définir l'Alignement à 1 et qu'il ferait ce que vous le souhaitez sans ajouter le Mot de référence.
C'est encore une autre raison d'ajouter des
Option Explicit
vers le haut de modules existants et de vérifier Exiger la Déclaration de la Variable dans l'IDE Outils->Options de l'écran. Si vous avez activé, vous verriez qui constantes ne sont pas résolus au lieu d'avoir l'silencieusement interpretted comme des zéros.OriginalL'auteur Jason Clement