「vba 角丸四角形内のテキストを消す」
という検索キーワードに気づきました。
どのアプリケーションかはわかりませんがVBAを使って、(角丸四角形のように)指定した形状の図形だけから、テキスト・文字列を削除したいということでしょう。
CharactersオブジェクトのTextプロパティを使ったサンプルマクロ
以下のSubプロシージャを実行すると、アクティブシート上の角丸四角形内のテキストが削除されます。
Dim shp As Shape
For Each shp In ActiveSheet.Shapes
If shp.AutoShapeType = msoShapeRoundedRectangle Then
shp.TextFrame.Characters.Text = ""
End If
Next
End Sub
テキストボックス内の文字列を削除するExcelマクロをご紹介しています。
そのIf文、
If shp.Type = msoTextBox Then
が、上記のプロシージャでは、
If shp.AutoShapeType = msoShapeRoundedRectangle Then
になっている点だけが違います。
図形(オートシェイプ)の形状を判定するのには、ShapeオブジェクトのAutoShapeTypeプロパティを利用するということです。
TextRange2オブジェクトのTextプロパティを使ったサンプルマクロ
TextRange2オブジェクトのTextプロパティに空白文字列を設定する、以下のSubプロシージャでも、アクティブシート上の角丸四角形内のテキストを削除できます。
Dim shp As Shape
For Each shp In ActiveSheet.Shapes
If shp.AutoShapeType = msoShapeRoundedRectangle Then
shp.TextFrame2.TextRange.Text = ""
End If
Next
End Sub
先のプロシージャで空白文字列を設定していた、
shp.TextFrame.Characters.Text = ""
の部分が、Office 2007で登場したTextFrame2系のオブジェクトモデル、
shp.TextFrame2.TextRange.Text = ""
になっている点だけが違います。
Home » エクセルマクロ・Excel VBAの使い方 » 図形内文字列 » VBAで特定形状の図形からテキストを削除する