Home » パワーポイントマクロ・PowerPoint VBAの使い方 » TextFrame・TextRange » 特定形状の図形からテキストを削除するPowerPointマクロ

特定形状の図形からテキストを削除するPowerPointマクロ

対象:PowerPoint 2010, PowerPoint 2013, Windows版PowerPoint 2016

「vba 角丸四角形内のテキストを消す」
という検索キーワードをトリガーにして、アクティブなシート上の特定図形からテキスト・文字列を削除するExcelマクロをご紹介しました。

PowerPointの場合も確認しておきましょう。

[スポンサードリンク]

TextRange2オブジェクトのTextプロパティを使ったサンプルマクロ

以下のSubプロシージャを実行すると、アクティブスライド上の角丸四角形内のテキストが削除されます。

Sub 角丸四角形内のテキストを削除_TextRange2_Text()
 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プロシージャでも、アクティブスライド上の角丸四角形内のテキストを削除できます。

Sub 角丸四角形内のテキストを削除_TextRange_Text()
 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オブジェクトを取得するのが、文字列操作の基本です。

TextFrame.TextRange

Excel VBAとの比較のために、TextRange2.Textプロパティに空白文字列を設定するプロシージャを先にご紹介しましたが、
「vba 角丸四角形内のテキストを消す」
という仕様にするだけなら、TextRange.Textプロパティを使えば、いいでしょう。

[スポンサードリンク]

Home » パワーポイントマクロ・PowerPoint VBAの使い方 » TextFrame・TextRange » 特定形状の図形からテキストを削除するPowerPointマクロ

「TextFrame・TextRange」の記事一覧

検索


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

.