【VBA】図形のテキストを中央揃えにする方法
図形のテキストはデフォルトだと左上揃えになります。
ただ、人に渡す資料だと中央揃えにしたいケースもあるかと思います。
この手間を削減するため、今回は図形のテキストを中央揃えにするマクロを紹介します。
この記事では↓の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)にしなくてもマクロを実行することができます。
アドイン化する方法については下記記事をご覧ください。