VBA (Visual Basic for Applications)でMicrosoft PowerPointを操作する方法を解説します。
PowerPointを操作するために、VBAには次のオブジェクトが用意されている。
| オブジェクト | 説明 |
|---|---|
| Application | PowerPointアプリケーション全般に適用される設定やオプション、ActivePresentationやWindowなどの最上位レベルのオブジェクトを取得するプロパティが含まれる。 |
| ColorFormat | 単色、グラデーション又はパターンの塗りつぶしを持つオブジェクトの前景色又は背景色を表すオブジェクト |
| FillFormat | 図形の塗りつぶしの書式設定を表すオブジェクト |
| GroupShapes | グループ化された図形の中の各図形を表すコレクション |
| Presentaion | PowerPointのプレゼンテーションを表すオブジェクト |
| Shape | オートシェイプ、フリーフォーム、OLEオブジェクト又は図などの描画オブジェクトを表す。 |
| Shapes | スライドのすべてのShapeオブジェクトのコレクション |
| Slide | スライドに配置されたすべての要素を表すオブジェクト |
| Slides | プレゼンテーションのすべてのSlideオブジェクトのコレクション |
| TextFrame | 配置及びアンカーのプロパティの指定された図形又はマスタテキストスタイルを含むTextFrameオブジェクト |
| TextFrame2 | 指定した図形範囲の配置及びアンカーのプロパティ値を含む特定のShapeオブジェクトに関連付けられたTextFrame2オブジェクトであり、値の取得のみ可能。 |
| TextRange | 図形に付加されたテキストを表すオブジェクトであり、値の取得のみ可能。 |
Applicationオブジェクトとは、PowerPointアプリケーション全般に適用される設定やオプション、ActivePresentationやWindowなどの最上位レベルのオブジェクトを取得するプロパティが含まれるオブジェクトである。
Applicationオブジェクトのプロパティ一覧を次に示す。
Applicationオブジェクトのメソッド一覧を次に示す。
すべてのShapeを取得する例を次に示す。
Dim sld As Slide
Dim shp As Shape
For Each sld In ActivePresentaion.Slides
For Each shp In sld.Shapes
' 何らかの処理
Next
Next
Presentaionオブジェクトとは、PowerPointのプレゼンテーションを表すオブジェクトである。
Presentaionオブジェクトのプロパティ一覧を次に示す。
ColorFormatオブジェクトとは、単色、グラデーション又はパターンの塗りつぶしを持つオブジェクトの前景色又は背景色を表すオブジェクトである。
ColorFormatオブジェクトのプロパティ一覧を次に示す。
FillFormatオブジェクトとは、図形の塗りつぶしの書式設定を表すオブジェクトである。
FillFormatオブジェクトのプロパティ一覧を次に示す。
GroupShapesオブジェクトとは、グループ化された図形の中の各図形を表すコレクションである。各図形はShapeオブジェクトで表される。このオブジェクトでItemメソッドを使用すると、それらの図形のグループ化を解除しなくても、グループ内の図形に個別に設定することができる。
Shapeオブジェクトとは、オートシェイプ、フリーフォーム、OLEオブジェクト又は図などの描画オブジェクトを表すオブジェクトである。
Shapeオブジェクトのプロパティ一覧を次に示す。
TypeプロパティにはMsoShapeType列挙型の値が格納されている。
| Member | 説明 |
|---|---|
| msoAutoShape | オートシェイプ |
| msoCallout | 吹き出し |
| msoCanvas | キャンバス |
| msoChart | グラフ |
| msoComment | コメント |
| msoDiagram | 図表 |
| msoEmbeddedOLEObject | 埋め込みOLEオブジェクト |
| msoFormControl | フォームコントロール |
| msoFreeForm | フリーフォーム |
| msoGroup | グループ |
| msoInk | インク |
| msoInkComment | インクコメント |
| msoLine | 線 |
| msoLinkedOLEObject | リンクされたOLEオブジェクト |
| msoLinkedPicture | リンクされた図 |
| msoMedia | メディア |
| msoOLEControlObject | OLEコントロールオブジェクト |
| msoPicture | 図 |
| msoPlaceholder | プレースホルダ |
| msoScriptAnchor | スクリプトアンカー |
| msoTAble | 表 |
| msoTextBox | テキストボックス |
| msoTextEffect | テキスト効果 |
Shapesオブジェクトとは、スライドのすべてのShapeオブジェクトのコレクションである。
Indexは、最背面にある図形から順に番号が割り当てられる。通常は、図形を挿入すると最前面に配置されるので、挿入された順序に従って番号が割り当てられるが、図形の順序を入れ替えた場合はIndexも変わる。
Slideオブジェクトとは、スライドを表すオブジェクトである。
Slideオブジェクトのプロパティ一覧を次に示す。
Slidesオブジェクトとは、プレゼンテーションのすべてのSlideオブジェクトのコレクションである。
TextFrameオブジェクトとは、Shapeオブジェクトのレイアウト枠を表すオブジェクトである。
TextFrameオブジェクトのプロパティ一覧を次に示す。
TextFrame2オブジェクトとは、Shapeオブジェクト又はShapeRangeオブジェクトのテキストフレーム表すオブジェクトである。
TextFrame2オブジェクトのプロパティ一覧を次に示す。
TextRangeオブジェクトとは、図形に付加されたテキストを表すオブジェクトである。
TextRangeオブジェクトのプロパティ一覧を次に示す。
Dim excelApplication As Object
Dim excelWorksheet As Object
On Error GoTo errorHandler
Set excelApplication = GetObject(Class:="Excel.Application")
Set excelWorksheet = excelApplication.ActiveWorkbook.ActiveSheet
excelWorksheet.Cells(1, 1).Value = "Hello world!"