こんにちは!PowerPointでの資料作り、毎日本当にお疲れ様です。
新しいプレゼンテーションを開いた瞬間、まず最初にやらなければいけないこと……それは、お馴染みの「タイトルとコンテンツ」や「タイトルスライド」といった初期レイアウトを消し去り、「白紙(空白)のスライド」に変更する作業ではないでしょうか。
1枚や2枚ならまだしも、毎日のように大量の資料を作る方にとっては、この「ポチポチとレイアウトを変更する無駄なクリック」が積もり積もって、大きなストレスと時間泥棒になりますよね。
「マクロの記録」ボタンを押してこの動作を覚えさせようとしても、PowerPointの世界ではうまく記録が残らなかったり、いざ再生するとエラーが出たりして挫折してしまった方も多いはずです。
大丈夫。ここをクリアすれば、PowerPoint VBAの基本はバッチリです!
今回は、「マクロを1回ポチっと押すだけで、社内規定の完全な空白スライドを持った新しいプレゼンテーションがドカンと立ち上がる」極上の時短マクロを、優しく丁寧にお伝えしていきます。
—
なぜ、PowerPointの「新規作成」はVBAでハックすべきなのか?
PowerPointを普通に起動すると、お節介にも「きれいなデザインテンプレート」や「タイトルを入力してください」というプレースホルダー(枠線)が鎮座したスライドが現れます。
しかし、デザイナーや実務でバリバリ資料を作るプロほど、「最初の余計なゴミがない、完全な白紙」を好みます。
手動でやると以下の手順が必要です。
1. PowerPointを起動する
2. 新規プレゼンテーションを作る
3. サムネイル上のスライドを選択して右クリックする
4. 「レイアウト」から「白紙」を選ぶ
これをVBA(Visual Basic for Applications)に任せると、一瞬で、しかも「絶対にミスなく」完了します。エンジニアとしての最初の一歩を踏み出すには、これ以上ない最高の題材です。
—
魔法のVBAコード:白紙スライド付き新規作成
まずは、百聞は一見に如かず。以下のコードをそのままコピーして、あなたのVBAエディタに貼り付けてみてください。
Sub CreateBlankPresentation()
‘ =================================================================
‘ 処理名: 社内標準・完全空白スライド付き新規プレゼンテーション作成
‘ 概要: 余計なレイアウトを排除した白紙の新規ファイルを作成し、作業効率を最大化する
‘ =================================================================
Dim targetPres As Presentation
Dim targetSlide As Slide
Dim blankLayout As CustomLayout
On Error GoTo ErrorHandler
‘ 1. 新規のプレゼンテーションオブジェクトを作成する
‘ (※ PowerPointの裏側で新しいファイルが1つ立ち上がります)
Set targetPres = Application.Presentations.Add(msoTrue)
‘ 2. 「白紙」のレイアウトデザインオブジェクトを特定する
‘ プレースホルダー(文字入力枠)が一切ない、清らかなレイアウトを指定します
‘ ※通常、PowerPointの標準テンプレートでは「白紙」は上から7番目(Index: 7)に位置しています
Set blankLayout = targetPres.SlideMaster.CustomLayouts(7)
‘ 3. 新規プレゼンテーションの「1枚目のスライド」として白紙レイアウトを追加する
‘ (※ 新規作成時に自動生成されたデフォルトの余計なスライドは削除または上書きします)
If targetPres.Slides.Count > 0 Then
‘ 既存のデフォルトスライドがある場合は、そのレイアウトを強制的にお手本(空白)に変更する
Set targetSlide = targetPres.Slides(1)
targetSlide.CustomLayout = blankLayout
Else
‘ スライドが万が一ゼロ枚の場合は新しく追加する
Set targetSlide = targetPres.Slides.AddSlide(1, blankLayout)
End If
‘ 4. 画面をスッキリ整えてユーザーに操作を委ねる
MsgBox “社内標準の空白スライドの準備が整いました!今日も良い資料を作りましょう。”, vbInformation, “自動化完了”
Exit Sub
ErrorHandler:
‘ 万が一のエラーを優しくキャッチする安全装置
MsgBox “エラーが発生しました: ” & Err.Description, vbCritical, “システムエラー”
End Sub
—
コードの構造を紐解く:初心者さんのための「3つのポイント」
この短いコードの中には、PowerPoint VBAを操る上で絶対に知っておくべき「オブジェクトの階層構造」の美しさが詰まっています。
① `Application.Presentations.Add` とは?
これは「PowerPointアプリケーション全体(Application)」に対して、「新しいファイル(Presentations)を1つ追加して(Add)」と命令しています。
これによって、画面の裏側で新しいパワーポイントのウィンドウがパッと開きます。プログラミングの世界では、新しく開いたファイルを変数 `targetPres` という「箱」に大事にしまって操作するのが鉄則です。
② なぜ `CustomLayouts(7)` なのか?
ここが一番のポイントです。PowerPointには「スライドマスター」という、デザインの親玉が存在します。その中に「タイトル用」「比較用」「白紙」といったレイアウトの部品(CustomLayouts)がいくつかストックされています。
標準的なPowerPointのテンプレートであれば、上から数えて 7番目(インデックス番号 7)が「白紙」 に該当します。
※もし社内独自のテンプレート(.potxなど)を使っていてレイアウトの順番が違う場合は、ここの数字を調整してくださいね。
③ 「新しく作る」のではなく「既存を塗り替える」スマートさ
PowerPointで新しいファイルを作った瞬間、システムは親切心から「1枚目のスライド(タイトルとコンテンツ)」を勝手に生み出します。
そのため、わざわざ新しく追加するのではなく、「最初からある1枚目のスライドのレイアウトを、強制的に『白紙』に書き換える」 というアプローチをとっています。これが無駄なスライドのゴミを生み出さない、プロならではのスマートなテクニックです。
—
初心者が必ずハマる「罠」と対策
PowerPoint VBAを書き始めると、多くの人が次のような壁にぶつかります。ここで先回りして解決策をお伝えしておきますね。
罠1:「インデックスが範囲外です」というエラーが出る
- 原因: さ先ほど説明した `CustomLayouts(7)` の部分で、社内テンプレートの仕様やOfficeのバージョン違いにより、白紙レイアウトが7番目に存在しない場合に起きてしまいます。
- 対策: まずはプレーンな状態でマクロを試すか、あるいは以下のようにレイアウトの名前(通常は英語で “Blank” や日本語で “白紙”)で探すように少しコードを工夫すると、より堅牢(ロバスト)になります。
—
まとめ:あなたの右腕となる「自分だけの自動化ツール」へ
今回は、新規プレゼンテーション作成時に「白紙の標準レイアウト」を強制適用する極上の時短マクロをご紹介しました。
たったこれだけのコードですが、毎日何度も繰り返す手作業をコードに置き換えるという体験は、あなたの仕事のスタイルを確実に変えてくれます。
このマクロを「個人用マクロブック(Personal.xlsb)」に登録したり、クイックアクセスツールバーに配置しておけば、いつでもどこでも、1クリックで「最高のスタートライン」に立つことができます。
ここをクリアしたあなたなら、次は「社内規定のフォントやロゴを自動で配置するマクロ」へのステップアップも余裕です。
ぜひ、日々の業務にこのコードを取り入れて、定時退社に一歩近づいてみてくださいね。応援しています!
