Home » パワーポイントマクロ・PowerPoint VBAの使い方 » Slide・スライド » 複数のスライドマスターから未使用のレイアウトを削除するパワポマクロ

複数のスライドマスターから未使用のレイアウトを削除するパワポマクロ

対象:PowerPoint2007, PowerPoint2010, PowerPoint2013, Windows版PowerPoint2016

「vba スライドマスター削除」
といった検索で、このサイト・インストラクターのネタ帳へのアクセスが、ありました。

スライドマスターの不要なレイアウトを削除するPowerPoint VBA(Visual Basic for Applications)のコードを探している方による検索でしょうか。

自分がまず使うことのないレイアウトを削除するPowerPointマクロを既にご紹介していますが、実務では、複数のプレゼンテーションファイルからスライドをコピペしまくった結果、複数のスライドマスターが存在してしまっているのでスッキリさせたいという状況が、ありそうに思えます。

[スポンサードリンク]

複数のスライドマスターから不要なレイアウトを削除するサンプルマクロ

以下のようなマクロで、複数のスライドマスターから使われていないレイアウトを削除することができます。

Sub 複数スライドマスターから未使用のレイアウトを削除する()

 Dim dsn As Design
 Dim i As Long

 On Error GoTo ERR_HNDL

 For Each dsn In ActivePresentation.Designs
  With dsn.SlideMaster.CustomLayouts

   For i = .Count To 1 Step -1
    .Item(i).Delete
   Next i

  End With
 Next dsn
 
 Exit Sub

ERR_HNDL:

 Select Case Err.Number
  Case -2147188160
   Err.Clear
   Resume Next
  Case Else
   MsgBox "エラーが発生したのでマクロを終了します。 " & Err.Number
   Exit Sub
 End Select

End Sub

サンプルマクロの解説

丁寧に処理するのなら、レイアウトが使われているかどうかを調べて、使われていないレイアウトを削除するという流れなのでしょうが、使われているレイアウトを削除しようとしたときには、
「実行時エラー'-2147188160(80048240)': Slide(不明なメンバー):無効な要求です。マスターを削除できません。」
というエラーが発生することを利用したマクロにしました。

実行時エラーが発生したら、ラベル・ERR_HNDLに飛ぶようにしておいて、
 On Error GoTo ERR_HNDL

使われているレイアウトだったときには、エラーを無視して処理を継続しています。
 ERR_HNDL:
  Select Case Err.Number
   Case -2147188160
    Err.Clear
    Resume Next

削除処理は、アクティブなプレゼンテーションの、全DesignにFor Each~Nextループを回して、
 For Each dsn In ActivePresentation.Designs

各Designの全CustomLayoutに対するFor~Nextループで行っています。
  With dsn.SlideMaster.CustomLayouts
   For i = .Count To 1 Step -1
    .Item(i).Delete

[スポンサードリンク]

Home » パワーポイントマクロ・PowerPoint VBAの使い方 » Slide・スライド » 複数のスライドマスターから未使用のレイアウトを削除するパワポマクロ

「Slide・スライド」の記事一覧

検索


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

.