「word vba テキストボックス 中央揃え」
「word マクロ テキストボックス 中央揃え」
といった検索で、このサイト・インストラクターのネタ帳へのアクセスがあることに気づきました。
複数の解釈ができる検索キーワードではありますが、テキストボックス内の段落・文字列を中央揃えにするWord マクロ・VBA(Visual Basic for Applications)のコードを探している方による検索と、私は推測しています。
文書内のテキストボックス内の段落・文字列を中央揃えにするサンプルマクロ
以下のようなマクロで、アクティブな文書内に存在する、すべてのテキストボックス内の段落・文字列を中央揃えにすることができます。
Dim shp As Shape
For Each shp In ActiveDocument.Shapes
If shp.Type = msoTextBox Then
shp.TextFrame.TextRange.Paragraphs.Alignment _
= wdAlignParagraphCenter
End If
Next shp
End Subアクティブ文書内の全Shapeにループを回して、
For Each shp In ActiveDocument.Shapes
もしShapeがテキストボックスだったときに、
If shp.Type = msoTextBox Then
そのShapeの、TextFrameオブジェクトの、TextRangeオブジェクトの、Paragraphsコレクションオブジェクトの、Alignmentプロパティを中央揃えに設定しています。
shp.TextFrame.TextRange.Paragraphs.Alignment _
= wdAlignParagraphCenter
アクティブページ内のテキストボックス内の段落・文字列を中央揃えにするサンプルマクロ
以下のようなマクロで、アクティブなページ内に存在する、すべてのテキストボックス内の段落・文字列を中央揃えにすることができます。
Dim shp As Shape
For Each shp In _
ActiveDocument.Bookmarks("\Page").Range.ShapeRange
If shp.Type = msoTextBox Then
shp.TextFrame.TextRange.Paragraphs.Alignment _
= wdAlignParagraphCenter
End If
Next shp
考え方は、先の、アクティブ文書内の、全テキストボックスの、段落・文字列を中央揃えにするマクロと同じです。
ループを回す対象が、アクティブ文書内の場合は、
For Each shp In ActiveDocument.Shapes
でしたが、アクティブページ内の場合、
For Each shp In _
ActiveDocument.Bookmarks("\Page").Range.ShapeRange
となっているところだけが異なっています。
Home » ワードマクロ・Word VBAの使い方 » Shape・図形 » テキストボックス内の段落・文字列を中央揃えにするWordマクロ