【PowerPoint】スライドマスターの「未使用のレイアウト」を一括削除するマクロ

【PowerPoint】スライドマスターの「未使用のレイアウト」を一括削除するマクロ
🛡️ 超解決

プレゼンテーション資料のファイルサイズが肥大化し、PowerPointの動作が重いと感じることはありませんか。その原因の一つに、スライドマスター内に未使用のレイアウトが多数残っている場合があります。手動での削除は手間がかかり、作業効率を低下させてしまいます。

この記事では、PowerPointのVBAマクロを活用し、スライドマスターから未使用のレイアウトを一括で効率的に削除する方法を解説します。この手順でファイルサイズを最適化し、快適なプレゼンテーション作成環境を取り戻しましょう。

マクロを導入し実行することで、作業時間を大幅に短縮できます。

【要点】PowerPointの未使用スライドレイアウトをマクロで削除する

  • 開発タブの表示設定: PowerPointのリボンに「開発」タブを表示し、VBAエディターを利用可能にします。
  • VBAマクロの挿入と実行: 未使用のスライドレイアウトを自動で判別し、一括で削除するVBAコードを挿入して実行します。
  • マクロ有効プレゼンテーションでの保存: マクロを安全に利用するため、プレゼンテーションを専用形式で保存します。

ADVERTISEMENT

未使用スライドレイアウトが残る原因とマクロ活用

PowerPointのスライドマスターは、プレゼンテーション全体のデザインや書式を定義する重要な機能です。このスライドマスターには、複数のスライドレイアウトが含まれています。レイアウトは、タイトルやコンテンツの配置、プレースホルダーの種類などを決定します。

しかし、テンプレートを多用したり、他のプレゼンテーションからスライドをコピーしたりすると、現在使用していないレイアウトがスライドマスター内に蓄積されてしまうことがあります。これらの不要なレイアウトがファイルサイズを肥大化させ、PowerPointの動作を重くする原因となるのです。

手動で一つずつレイアウトを削除するのは、特にレイアウト数が多い場合に非常に手間がかかります。そこでVBAマクロを活用することで、未使用のレイアウトを自動的に判別し、まとめて削除できます。これにより、作業効率が向上し、ファイルサイズが最適化されます。

PowerPointで未使用のスライドレイアウトをマクロで削除する手順

ここでは、PowerPointでVBAマクロを使用して未使用のスライドレイアウトを一括削除する具体的な手順を解説します。この手順はWindows版のMicrosoft 365、PowerPoint 2021、2019を対象としています。

1. 開発タブを表示する設定

  1. PowerPointを起動する
    対象のプレゼンテーションファイルを開きます。
  2. 「ファイル」タブをクリックする
    画面左上にある「ファイル」タブを選択します。
  3. 「オプション」を選択する
    左側のメニューから一番下にある「オプション」をクリックし、PowerPointのオプションダイアログを開きます。
  4. 「リボンのユーザー設定」に進む
    オプションダイアログの左側メニューで「リボンのユーザー設定」をクリックします。
  5. 「開発」チェックボックスをオンにする
    右側の「メインタブ」リストから「開発」のチェックボックスにチェックを入れます。
  6. 「OK」をクリックして設定を保存する
    ダイアログ下部の「OK」ボタンをクリックし、設定変更を適用します。これにより、PowerPointのリボンに「開発」タブが表示されます。

2. VBAエディターを開く

  1. 「開発」タブをクリックする
    PowerPointのリボンに新しく表示された「開発」タブを選択します。
  2. 「Visual Basic」をクリックする
    「コード」グループ内にある「Visual Basic」ボタンをクリックし、VBAエディターを起動します。

3. マクロコードを挿入する

  1. 標準モジュールを挿入する
    VBAエディターの左側にある「VBAProject」ペインで、対象のプレゼンテーション名を選択します。右クリックメニューから「挿入」→「標準モジュール」を選択します。
  2. マクロコードを貼り付ける
    新しく開いたモジュールウィンドウに、以下のVBAコードをコピーして貼り付けます。
    Sub DeleteUnusedSlideLayouts()
        Dim oSld As Slide
        Dim oSldLayout As CustomLayout
        Dim bLayoutUsed As Boolean
        Dim i As Long
        Dim j As Long
        Dim k As Long
        Dim sMasterName As String
    
        ' 確認メッセージを表示
        If MsgBox("未使用のスライドレイアウトをすべて削除します。よろしいですか?", vbYesNo + vbQuestion, "確認") = vbNo Then
            Exit Sub
        End If
    
        ' 各スライドマスターをループ
        For i = ActivePresentation.SlideMasters.Count To 1 Step -1
            sMasterName = ActivePresentation.SlideMasters(i).Name
    
            ' 各カスタムレイアウトをループ
            For j = ActivePresentation.SlideMasters(i).CustomLayouts.Count To 1 Step -1
                Set oSldLayout = ActivePresentation.SlideMasters(i).CustomLayouts(j)
                bLayoutUsed = False
    
                ' レイアウトが使用されているか確認
                For k = 1 To ActivePresentation.Slides.Count
                    Set oSld = ActivePresentation.Slides(k)
                    If oSld.CustomLayout.Name = oSldLayout.Name Then
                        bLayoutUsed = True
                        Exit For
                    End If
                Next k
    
                ' 使用されていないレイアウトを削除
                If Not bLayoutUsed Then
                    On Error Resume Next ' エラーを無視して続行
                    oSldLayout.Delete
                    On Error GoTo 0 ' エラー処理を元に戻す
                End If
            Next j
        Next i
    
        MsgBox "未使用のスライドレイアウトの削除が完了しました。", vbInformation, "完了"
    End Sub

4. マクロを実行する

  1. マクロを実行する
    VBAエディターのツールバーにある「実行」ボタン(緑色の再生アイコン)をクリックするか、「F5」キーを押します。
  2. 確認メッセージに応答する
    「未使用のスライドレイアウトをすべて削除します。よろしいですか?」という確認メッセージが表示されたら、「はい」をクリックします。削除が完了すると「未使用のスライドレイアウトの削除が完了しました。」というメッセージが表示されます。

5. プレゼンテーションを保存する

  1. PowerPointに戻る
    VBAエディターを閉じてPowerPointの画面に戻ります。
  2. 「ファイル」タブをクリックする
    画面左上にある「ファイル」タブを選択します。
  3. 「名前を付けて保存」を選択する
    左側のメニューから「名前を付けて保存」をクリックし、保存場所を選択します。
  4. 「ファイルの種類」を変更して保存する
    「ファイルの種類」ドロップダウンリストから「PowerPoint マクロ有効プレゼンテーション (*.pptm)」を選択し、「保存」をクリックします。マクロを含むファイルは、この形式で保存する必要があります。

マクロ使用時の注意点とよくある失敗

PowerPointでマクロを利用する際には、いくつかの注意点があります。これらを理解しておくことで、予期せぬトラブルを避け、安全に作業を進められます。

Mac版PowerPointでのVBAマクロ

Mac版PowerPointでもVBAマクロは利用できますが、UIの配置や一部の操作がWindows版と異なる場合があります。例えば、「開発」タブの表示設定は、PowerPointメニューの「環境設定」から行う必要があります。基本的なVBAコードの動作は共通ですが、環境に合わせた操作が必要です。

マクロのセキュリティ警告が表示される場合

マクロを含むファイルを開く際、PowerPointはセキュリティ警告を表示することがあります。これは、悪意のあるマクロからコンピューターを保護するための機能です。信頼できる発行元からのファイルであることを確認し、「コンテンツの有効化」をクリックしてマクロを実行してください。不明なファイルのマクロは実行しないように注意が必要です。

誤って必要なレイアウトを削除してしまった場合

マクロは未使用のレイアウトを自動で削除しますが、万が一、後で必要になるレイアウトが削除されてしまう可能性もゼロではありません。マクロを実行する前に、必ずプレゼンテーションファイルを別名で保存しておくことを強く推奨します。これにより、誤って削除した場合でも元の状態に戻すことができます。

PowerPointのバージョンによる互換性

今回提供したVBAコードは、Microsoft 365、PowerPoint 2021、2019など、比較的新しいバージョンのPowerPointで動作することを確認しています。しかし、非常に古いバージョンのPowerPointでは、一部のVBAオブジェクトやプロパティがサポートされていない可能性があります。その場合は、コードの調整が必要になることがあります。

スライドマスター自体の削除は手動で行う

このマクロは、スライドマスター内の「カスタムレイアウト」を削除するものです。スライドマスターそのものを削除する機能は含まれていません。もし不要なスライドマスターがある場合は、スライドマスタービューで手動で削除する必要があります。スライドマスタービューは、「表示」タブの「スライドマスター」から開けます。

ADVERTISEMENT

手動削除とマクロによる削除の比較

スライドマスターの未使用レイアウトを削除する方法には、手動とマクロ利用の2通りがあります。それぞれの方法のメリットとデメリットを比較します。

項目 手動削除 マクロによる削除
手間 各レイアウトを確認し、一つずつ削除する VBAコードの挿入と実行のみ
速度 レイアウト数が多いほど時間がかかる 短時間で複数のレイアウトを処理
確実性 見落としや誤削除の可能性 プログラムが自動判断し、正確に削除
リスク 誤って使用中のレイアウトを削除する可能性 マクロ実行前のバックアップでリスク軽減
必要な知識 PowerPointの基本操作のみ VBAコードの貼り付けと実行方法

まとめ

この記事では、PowerPointのスライドマスターに蓄積された未使用のレイアウトを、VBAマクロを使って効率的に削除する手順を解説しました。開発タブの表示からマクロの挿入、実行、保存までの一連の操作を通じて、プレゼンテーションのファイルサイズを軽減できます。

ファイルサイズが小さくなることで、PowerPointの動作が軽快になり、プレゼンテーション作成の生産性が向上します。マクロ活用は、PowerPoint作業の効率化に役立つ強力な手段です。ぜひ、このマクロを導入して、快適な資料作成環境を構築してください。

ADVERTISEMENT

この記事の監修者
✍️

超解決 第一編集部

疑問解決ポータル「超解決」の編集チーム。正確な検証と、現場視点での伝わりやすい解説を心がけています。