検索キーワード
「エクセル VBA shape テキストボックスの取り消し線」
をきっかけにして、Shape-TextFrame-Characters-Fontというオブジェクトの階層を辿って取得できるStrikethroughプロパティを使って、テキストボックスなどの図形内文字列に取り消し線を引けることをご紹介しました。
他の階層を辿っても図形内文字列・Shape内の文字列に取り消し線を引けます。
TextFrame2経由でShape内文字列に取り消し線を引くサンプルマクロ
アクティブなワークシートにテキストボックスを1つ作成し、そのテキストボックスに文字列を入力しておいてから以下のExcelマクロを実行してください。
Dim shp As Shape
Set shp = ActiveSheet.Shapes(1)
shp.TextFrame2.TextRange.Font.Strike = msoSingleStrike
End Sub
サンプルマクロで行っている処理
拙著『理解するExcel VBA/図形操作の基本』の[chapter 6. TextFrame2を経由した文字列操作]で、TextFrame2オブジェクトを経由した以下のようなオブジェクトモデルでも、図形内文字列のフォントを操作できることを解説しています。
Worksheetオブジェクト
└ Shapeオブジェクト
└ TextFrame2オブジェクト
└ TextRange2オブジェクト
└ Font2オブジェクト
上記のサンプルマクロでは、このオブジェクトモデルを辿ってFont2オブジェクトを取得し、Font2.Strikeプロパティに、
MsoTextStrike列挙型に定義されている定数msoSingleStrike(直値:1)を代入することで、取り消し線を引いています。
Font2.Strikeなら二重取り消し線も引ける
MsoTextStrike列挙型には、定数msoDoubleStrike(直値:2)も用意されており、
先ほどのサンプルマクロの、
shp.TextFrame2.TextRange.Font.Strike = msoSingleStrike
を、
shp.TextFrame2.TextRange.Font.Strike = msoDoubleStrike
にすれば、二重取り消し線を引くこともできます。
最終更新日時:2024-03-26 14:44
- Newer:Word VBAでヘッダー文字列の配置を指定する-ParagraphFormat.Alignment
- Older:Word VBAのSelection.TypeTextで改ページを入力する
Home » エクセルマクロ・Excel VBAの使い方 » 図形内文字列 » TextFrame2経由でもExcelのShape内文字列に取り消し線を引ける-Font2.Strikeプロパティ