【VBA】図形のテキストを中央揃えにする方法


図形のテキストはデフォルトだと左上揃えになります。

ただ、人に渡す資料だと中央揃えにしたいケースもあるかと思います。

この手間を削減するため、今回は図形のテキストを中央揃えにするマクロを紹介します。

この記事では↓の2つのマクロをお見せいたします。

  1. 選択中の図形のテキストを中央揃えにするマクロ
  2. シート上のすべての図形のテキストを中央揃えにするマクロ

選択中の図形のテキストを中央揃えにするマクロ

Sub SelectTxtCenter()
    '''選択した図形のテキストを上下左右中央揃いにする
    
    Dim sel
    Set sel = Selection
    
    '図形で無ければExit
    Select Case TypeName(sel)
        Case "TextBox"
        Case "Rectangle"
        Case Else: Exit Sub
    End Select
    
    With sel.ShapeRange.TextFrame2
        .TextRange.ParagraphFormat.Alignment = msoAlignCenter '左右方向を中央揃え
        .VerticalAnchor = msoAnchorMiddle '上下方向を中央揃え
    End With
End Sub

このプログラムは選択中の図形のテキストを左右方向、上下方向に中央揃えにします。

With sel.ShapeRange.TextFrame2
    .TextRange.ParagraphFormat.Alignment = msoAlignCenter '左右方向を中央揃え
    .VerticalAnchor = msoAnchorMiddle '上下方向を中央揃え
End With

中央揃えにしているのはこの箇所です。

左右方向にだけ中央揃えにしたい、もしくは上下方向にだけ中央揃えにしたいのであれば片方をコメントアウトして使ってみてください。

シート上のすべての図形のテキストを中央揃えにするマクロ

Sub AllTxtCenter()
    '''シート上のすべての図形のテキストを上下左右中央揃いにする
    
    Dim shp As Shape
    For Each shp In ActiveSheet.Shapes
        With shp.TextFrame2
            .TextRange.ParagraphFormat.Alignment = msoAlignCenter '左右方向を中央揃え
            .VerticalAnchor = msoAnchorMiddle '上下方向を中央揃え
        End With
    Next
End Sub

このプログラムはシート上のすべての図形のテキストを左右方向、上下方向に中央揃えにします。

アクティブシート上の図形に対して1つずつ処理しています。

先ほど同様、左右方向にだけ中央揃えにしたい、もしくは上下方向にだけ中央揃えにしたいのであれば片方をコメントアウトして使ってみてください。

アドイン化するともっと便利に

このマクロはアドイン化しておくのがおすすめです。

アドインにしておけば、ファイルをマクロブック(.xlsm)にしなくてもマクロを実行することができます。

アドイン化する方法については下記記事をご覧ください。

VBAが難しいと感じたら
プロにお任せして代わりに作ってもらってはいかがでしょう?
VBAの作成依頼はこちらから

《VBA中級者向けの本》
VBA上級者を目指したい人にはパーフェクトExcel VBA一択です。

created by Rinker
技術評論社
¥3,608 (2023/06/06 16:32:04時点 Amazon調べ-詳細)

他の「VBA」の記事はこちらからどうぞ

VBA

Posted by やろまい