PowerPoint VBA(Visual Basic for Applications)とExcel VBAのSelectionの違いについてまとめました。
特に、Word VBAからPowerPoint VBAに入る人に向けて、WordとPowerPointのSelectionの違いについてもまとめておきます。
WordもPowerPointもSelectionプロパティはSelectionオブジェクトを返す
WordのSelectionプロパティも、Selectionオブジェクトを返します。
この部分は、Excelだけが特殊ということになります。
WordのSelectionはグローバルのメンバー
WordのSelectionプロパティはグローバルのメンバーです。
ですから、上位のオブジェクト式を省略していきなり
Selection.プロパティ/メソッド
という記述ができます。
この部分は、ExcelとWordが似ていて、PowerPointが特殊ということになります。
PowerPointのSelectionは、DocumentWindowオブジェクトを取得してから使う必要がありますから、必ず
上位のオブジェクト式.Selection.プロパティ/メソッド
と書かなければなりません。
Word VBAの、
Selection.プロパティ/メソッド
という記述に慣れている方は、この
上位のオブジェクト式.Selection
と書かなければならない点は、戸惑うところでしょう。
WordのSelectionオブジェクトにはメンバーがたくさん
PowerPointのSelectionオブジェクトのメンバーは、それほどたくさんありません。
上図の通り、PowerPointのSelectionオブジェクトのプロパティは、
Application
ChildShapeRange
HasChildShapeRange
Parent
ShapeRange
SlideRange
TextRange
TextRange2
Type
の9個だけです。隠しプロパティもありません。
メソッドのほうは、
Copy
Cut
Delete
Unselect
と、名前から何をするか推測しやすい4つしかありません。隠しメソッドもありません。
これに対して、WordのSelectionオブジェクトには、とてもたくさんのメンバーが存在します。
Microsoft MVP for Wordで「みんなのワードマクロ」の新田順也さんが、Wordマクロを作りはじめた頃は、Selectionばかりを使っていたというお話を伺ったことがあります。
それができたのは、WordのSelectionオブジェクトに、これだけたくさんのプロパティやメソッドが用意されているから、ということが関係しているはずです。
Wordマクロでは、オブジェクト式やオブジェクト構造をそれほど理解しなくても、Selectionオブジェクトを利用することで、かなりのことができてしまうということです。
しかしPowerPointの場合、Selectionオブジェクトだけではできることがかなり限定されていますから、しっかりとPowerPointのオブジェクト構造やオブジェクト式について理解する必要があります。
WordマクロでSelectionオブジェクトの多用だけで済ましてきた方が、PowerPoint VBAを使おうとしたときには、このことが大きなハードルになるはずです。
Home » パワーポイントマクロ・PowerPoint VBAの使い方 » PowerPoint VBAとWord VBAのSelectionの違い