Home » エクセルマクロ・Excel VBAの使い方 » Office連携 » Excel VBAでPowerPointの図形を削除する

Excel VBAでPowerPointの図形を削除する

動作検証バージョン:64bit Windows 10 Pro + 32bit Excel & PowerPoint(バージョン2012 ビルド13530.20376 Microsoft Store)

「EXCEL vba PowerPointの図形を削除」
という検索キーワードでアクセスがありました。

PowerPointの図形を削除するExcel VBAのサンプル

先頭スライドに図形が存在するプレゼンテーションファイルがPowerPointで開かれている状態で、以下のSubプロシージャを実行してみてください。

Sub PowerPointの図形を削除する()
On Error GoTo ErrHandl

 With GetObject(Class:="PowerPoint.Application")
  .ActivePresentation.Slides(1).Shapes(1).Delete
 End With

Exit Sub
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

[スポンサードリンク]

Home » エクセルマクロ・Excel VBAの使い方 » Office連携 » Excel VBAでPowerPointの図形を削除する

「Office連携」の記事一覧

検索


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

.