Home » エクセルマクロ・Excel VBAの使い方 » Shapesコレクション・Shapeオブジェクト » ShapeのHorizontalAlignmentは??

動作検証バージョン:64bit Windows 10 Pro + 32bit Excel(バージョン2204 ビルド15128.20224 Microsoft Store)

「Excel vba shape HorizontalAlignment」
のような検索で、時折アクセスがあります。

Excel VBAで、図形を表すShapeオブジェクトにHorizontalAlignmentプロパティがある、と考えていた方による検索でしょうか。

ShapeにHorizontalAlignmentはない

Excel VBAのShapeオブジェクトには、文字列の水平方向の配置位置を取得/設定するためのHorizontalAlignmentプロパティはありません。

オブジェクトブラウザーで「HorizontalAlignment」を完全一致検索すると、

上図のとおり複数のオブジェクトにHorizontalAlignmentプロパティがあることを確認できますが、Shapeオブジェクトはヒットしていません。[クラス]列に「Shape」は見当たりません。

Shape内文字列を操作するためのオブジェクトモデル

拙著『理解するExcel VBA/図形操作の基本』の、「chapter 4. Shape内の文字列を操作する」でも解説しているとおり、Shape内文字列は以下のような階層構造になっています。

Woksheetオブジェクト
 └ Shapeオブジェクト
   └ TextFrameオブジェクト
     └ Charactersオブジェクト

この中でHorizontalAlignmentプロパティが用意されているのは、文字列枠を表すオブジェクトTextFrameです。

Shape内文字列のHorizontalAlignmentを設定するサンプル

具体的なコードを見ましょう。

ActiveSheet.Shapes(1)で取得できる、アクティブシート上の1つ目の図形に文字列を入力しておいて、以下のExcelマクロを実行すると文字列が右揃えに設定されます。

Sub Shape内文字列の水平方向配置を設定する()
 Dim shp As Shape
 Set shp = ActiveSheet.Shapes(1)
 shp.TextFrame.HorizontalAlignment = xlHAlignRight
End Sub

HorizontalAlignmentプロパティが用意されているのは、Shapeの子オブジェクトであるTextFrameです。

最終更新日時:2022-05-31 04:15

[スポンサードリンク]

Home » エクセルマクロ・Excel VBAの使い方 » Shapesコレクション・Shapeオブジェクト » ShapeのHorizontalAlignmentは??

「Shapesコレクション・Shapeオブジェクト」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.