「vba 角丸四角形内のテキストを消す」
という検索キーワードをトリガーにして、アクティブなシート上の特定図形からテキスト・文字列を削除するExcelマクロをご紹介しました。
PowerPointの場合も確認しておきましょう。
TextRange2オブジェクトのTextプロパティを使ったサンプルマクロ
以下のSubプロシージャを実行すると、アクティブスライド上の角丸四角形内のテキストが削除されます。
Dim shp As Shape For Each shp In ActiveWindow.Selection.SlideRange.Shapes
If shp.AutoShapeType = msoShapeRoundedRectangle Then
shp.TextFrame2.TextRange.Text = ""
End If
Next shp
End Sub
Excel VBAのTextRange2.Textプロパティを使ったSubプロシージャとよく似ています。
Excel VBAの場合、
For Each shp In ActiveSheet.Shapes
となっていた箇所が、PowerPoint VBAではActiveSlide的なプロパティがないので、
For Each shp In ActiveWindow.Selection.SlideRange.Shapes
となっています。
CharactersオブジェクトのTextプロパティを使ったサンプルマクロ
以下のSubプロシージャでも、アクティブスライド上の角丸四角形内のテキストを削除できます。
Dim shp As Shape For Each shp In ActiveWindow.Selection.SlideRange.Shapes
If shp.AutoShapeType = msoShapeRoundedRectangle Then
shp.TextFrame.TextRange.Text = ""
End If
Next shp
End Sub
こちらがCharactersオブジェクトのTextプロパティに空白文字列を設定したExcel VBAに該当する、PowerPoint 2003以前から存在するオブジェクトモデルを利用したプロシージャです。
PowerPoint VBAの場合、TextFrameオブジェクトにCharactersという名前のプロパティやメソッドはなく、TextRangeプロパティを使ってTextRangeオブジェクトを取得するのが、文字列操作の基本です。
Excel VBAとの比較のために、TextRange2.Textプロパティに空白文字列を設定するプロシージャを先にご紹介しましたが、
「vba 角丸四角形内のテキストを消す」
という仕様にするだけなら、TextRange.Textプロパティを使えば、いいでしょう。
- Newer:Rectangleに数式を
- Older:VBAで特定形状の図形からテキストを削除する
Home » パワーポイントマクロ・PowerPoint VBAの使い方 » TextFrame・TextRange » 特定形状の図形からテキストを削除するPowerPointマクロ