「EXCEL vba PowerPointの図形を削除」
という検索キーワードでアクセスがありました。
PowerPointの図形を削除するExcel VBAのサンプル
先頭スライドに図形が存在するプレゼンテーションファイルがPowerPointで開かれている状態で、以下のSubプロシージャを実行してみてください。
On Error GoTo ErrHandl
With GetObject(Class:="PowerPoint.Application")
.ActivePresentation.Slides(1).Shapes(1).Delete
End With
ErrHandl:
Dim msg As String
Select Case Err.Number
Case 429
msg = "PowerPointが起動していないようです。"
Case Else
msg = Err.Description & vbCrLf & Err.Number
End Select
Err.Clear
MsgBox msg
End Sub
先頭スライドに存在する1つ目のShapeオブジェクトが削除されます。
サンプルで行っている処理について
上記のSubプロシージャは、Excelから表示したVBEで挿入した標準モジュールで、作成・実行できます。が、Excelに関するコードは一切含まれておらず、実質的にはPowerPoint VBAのコードです。
拙著『いちばんやさしいPowerPoint VBAの教本』の「Lesson 36 Shapeが持つメソッドについて学習しましょう」でもご紹介しているコード
ActivePresentation.Slides(1).Shapes(1).Delete
を、Excel VBAなどからでも実行できるようにしているだけです。
PowerPoint VBAならば、いきなり
ActivePresentation.Slides(1).Shapes(1).Delete
と書けますが、そうではないので、まずVBAのGetObject関数で、起動済みのPowerPoint.Applicationオブジェクトへの参照を取得しています。
With GetObject(Class:="PowerPoint.Application")
取得したPowerPoint.Applicationの参照を使って、PowerPointを操作するため、つづくアクティブなプレゼンテーションを表すPowerPoint.Presentationオブジェクトを取得するActivePresentationプロパティの前に「.」が存在します。
.ActivePresentation.Slides(1).Shapes(1).Delete
PowerPointオブジェクトモデルの理解が必須
Excel VBAの経験が多少ある方の中には、Excel VBAを知っていれば、PowerPointを操作するコードも簡単に作れると考えている方もいらっしゃるようですが、そんなことはありません。
プログラミング言語VBAは、Excel VBAとPowerPoint VBAで同じですけれど、PowerPointのオブジェクトモデルを理解する必要があります。その場合、いきなりExcelから表示したVBEでコードを書くよりも、PowerPointから表示したVBEで、PowerPoint VBAのコードをまず作成するほうが楽ですので。
最終更新日時:2021-01-26 18:04
- Newer:VBAでWord文書のタイトルを取得する
- Older:Word VBAのSelection.Endとは
Home » エクセルマクロ・Excel VBAの使い方 » Office連携 » Excel VBAでPowerPointの図形を削除する