Home » エクセルマクロ・Excel VBAの使い方 » 図形内文字列 » TextFrame2経由でもExcelのShape内文字列に取り消し線を引ける-Font2.Strikeプロパティ

TextFrame2経由でもExcelのShape内文字列に取り消し線を引ける-Font2.Strikeプロパティ

動作検証バージョン:Windows 11 Home + 64bit Excel バージョン 2403(ビルド17425.20000クイック実行)ベータチャネル

検索キーワード
「エクセル VBA shape テキストボックスの取り消し線」
をきっかけにして、Shape-TextFrame-Characters-Fontというオブジェクトの階層を辿って取得できるStrikethroughプロパティを使って、テキストボックスなどの図形内文字列に取り消し線を引けることをご紹介しました。

他の階層を辿っても図形内文字列・Shape内の文字列に取り消し線を引けます。

TextFrame2経由でShape内文字列に取り消し線を引くサンプルマクロ

アクティブなワークシートにテキストボックスを1つ作成し、そのテキストボックスに文字列を入力しておいてから以下のExcelマクロを実行してください。

Sub TextFrame2を経由してShape内の文字列に取り消し線を引く()
 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

[スポンサードリンク]

Home » エクセルマクロ・Excel VBAの使い方 » 図形内文字列 » TextFrame2経由でもExcelのShape内文字列に取り消し線を引ける-Font2.Strikeプロパティ

「図形内文字列」の記事一覧

検索


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

.