このサイトの記事内では「アフィリエイト広告」などの広告を掲載している場合があります。
消費者庁が問題としている「誇大な宣伝や表現」とならないよう配慮しコンテンツを制作しておりますのでご安心ください。
問題のある表現が見つかりましたらお問い合わせよりご一報いただけますと幸いです。

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


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

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

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

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

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

VBAが難しいと感じたら
ココナラにてVBAの作成依頼を受け付けています。
ご依頼・ご相談はこちらから

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

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上級者を目指したい人にはパーフェクトExcel VBA一択です。
この本を読み切れば間違いなくVBA上級者になれます。

VBAが難しいと感じたら
ココナラにてVBAの作成依頼を受け付けています。
ご依頼・ご相談はこちらから

VBA

Posted by やろまい