「VBA オートシェイプ textframe 削除」
という検索キーワードに気が付きました。
VBAでShapeオブジェクト内のTextFrameを削除する方法を、探していらした方による検索でしょうか。
どのアプリケーションか不明わかりませんので、この記事ではPowerPoint VBAについてお伝えします。
文字列枠を削除する操作はありますか?
まず、文字列枠を削除する操作がPowerPoint上にあるか、思い出してください。
文字列枠を削除することはできないはずです。削除できるのは、文字列枠ではなく文字列です。
一方、スライドや図形は削除できます。
TextFrameにDeleteメソッドはない
PowerPoint VBAの場合、削除可能なオブジェクトの場合、オブジェクト自身がDeleteメソッドを持っています。
スライドを表すSlideオブジェクトや、図形を表すShapeオブジェクトは、いずれもDeleteメソッドを持っています。
拙著『いちばんやさしいPowerPoint VBAの教本』でも、Lesson 25でSlide.Deleteメソッドを、Lesson 36でShape.Deleteメソッドをご紹介しています。
これに対して、オブジェクトブラウザーで確認できるとおり、TextFrameオブジェクトにDeleteメソッドはありません。
TextFrameオブジェクトに用意されているのは、TextFrameオブジェクト内に存在する文字列を削除する、DeleteTextメソッドです。
TextFrame.DeleteTextメソッドを使った、
ActivePresentation.Slides(1).Shapes(1).TextFrame.DeleteText
というコードを実行すれば、アクティブプレゼンテーション先頭スライドの、1つ目の図形内に存在する(文字列枠ではなく)文字列を削除できます。
Home » パワーポイントマクロ・PowerPoint VBAの使い方 » TextFrame・TextRange » VBAでTextFrame・文字列枠を削除する??