「パワーポイント マクロ 図形 テキスト 中央揃」
という検索で、このサイト・インストラクターのネタ帳へのアクセスがありました。
図形(オートシェイプ)内の、テキスト・文字列を中央揃えにするマクロ・VBA(Visual Basic for Applications)のコードを探している方による検索です。
図形内の文字列を中央揃えにするサンプルマクロ
アクティブなスライドで、図形内の文字列を中央揃えにするサンプルマクロを、まずはご紹介しましょう。Dim shp As Shape
With ActiveWindow.Selection.SlideRange
For Each shp In .Shapes
With shp
If .Type = msoAutoShape And .HasTextFrame Then
With .TextFrame
.TextRange.ParagraphFormat.Alignment _
= ppAlignCenter
.VerticalAnchor _
= msoAnchorMiddle
End With ' .TextFrame
End If
End With ' ActiveWindow.Selection.SlideRange
Next shp
End With
End Sub
アクティブなスライド上の、
With ActiveWindow.Selection.SlideRange
すべてのShapeに対してループを回して、
For Each shp In .Shapes
もしそのShapeがオートシェイプで、かつ文字列を含んでいたら、
With shp
If .Type = msoAutoShape And .HasTextFrame Then
左右方向・水平方向で中央揃えにして、
With .TextFrame
.TextRange.ParagraphFormat.Alignment _
= ppAlignCenter
上下方向・垂直方向でも中央揃えにしています。
.VerticalAnchor _
= msoAnchorMiddle
どのように該当するプロパティを探すのか
プログラミングの経験のある方にとって、考え方は特に難しくはないはずです。
問題は、左右方向の配置はParagraphFormat.Alignmentプロパティで設定して、上下方向の配置はTextFrame.VerticalAnchorプロパティで設定することを、どうやって探すか、調べるか、見つけるかでしょう。
私はこれらのプロパティをVBE(Visual Basic Editor)に付属するツール・オブジェクトブラウザで探しました。
配置については「align」という単語が含まれたプロパティが存在するであろうと予想し、まず「align」を検索しました。
予想どおり「align」を含んだAlignmentプロパティがParagraphFormatオブジェクトに存在していました。ヘルプを読むと確かに配置を指定することができます。
上下方向・垂直方向の配置を指定するプロパティは、「VerticalAlignment」というようなプロパティが存在することを予想していたのですが、そういったプロパティが見当たらないので、今度は少なくとも「vertical」という単語が含まれているのではないのかと予想し「vertical」を検索しました。
するとTextFrameオブジェクトにVerticalAnchorというプロパティが存在していました。
ヘルプを読んでみると、このTextFrame.VerticalAnchorプロパティが、上下方向の配置に関係していることがわかります。
このようにして私は、ParagraphFormat.AlignmentプロパティとTextFrame.VerticalAnchorプロパティを見つけ、上記のマクロを作ったのです。
マクロ記録機能のなくなってしまった最近のPowerPointでマクロを作る場合、オブジェクト構造を理解することと、オブジェクトブラウザを使えることは、マクロ作成のために必須のスキルだと感じています。
Home » パワーポイントマクロ・PowerPoint VBAの使い方 » TextFrame・TextRange » 図形・オートシェイプ内の文字を中央揃えにするパワポマクロ