【入門編】【初心者】今日の日付を「YYYYMMDD」形式で自動付与しながら、指定した共有フォルダにプレゼンテーションをバックアップ保存するルーティンマクロ – PowerPoint VBA解析バイブル

スポンサーリンク

こんにちは!バックオフィスや現場の業務効率化に日々奮闘している皆さん、お疲れ様です。先輩エンジニアの私です。

毎日の定例会議や日報の資料作成、本当にお疲れ様です。作り終えた後に「あぁ、今日の分として共有フォルダに保存しなきゃ」「ファイル名に今日の日付を『20231024』みたいな形式で付けないと後で探すの大変だな…」と手作業でファイル名を書き換えていませんか?

その「毎日の数クリック」、実はVBA(Visual Basic for Applications)のほんの小さな自動化で、完全にゼロにできるんです。

今回は、PowerPoint VBAの基本をしっかり押さえつつ、「今日の日付を『YYYYMMDD』形式で自動付与しながら、指定した共有フォルダに一発でバックアップ保存するルーティンマクロ」の作り方を、優しく徹底解説していきます。

ここをクリアすれば、PowerPoint VBAの基本構造はバッチリです!一緒にマスターしていきましょう。

—

1. なぜ「手動保存」から「マクロ保存」に切り替えるべきなのか?

マクロの記録から一歩抜け出して自作コードを書くメリットは、単なる「時短」だけではありません。

  • ヒューマンエラーの根絶: うっかり上書き保存してしまい、昨日のデータが消えてしまった…という悲劇を防げます。
  • 命名規則の統一: 誰が保存しても「資料名_YYYYMMDD.pptx」という美しい一意のファイル名になり、共有フォルダが散らかりません。
  • 精神的解放: 「あ、保存し忘れて閉めちゃったかも」という余計な心配を思考から排除できます。

それでは、さっそく仕組みを作っていきましょう。

—

2. 開発の舞台裏:VBAを書くための準備

まずは、PowerPointでVBAを書くための「開発タブ」を表示させます(一度設定すればずっと使えます)。

1. PowerPointを開き、画面上のリボン(メニュー)の何もないところで右クリックし、「リボンのユーザー設定」を選びます。
2. 出てきた設定画面の右側にあるリストの中から、「開発」のチェックボックスにチェックを入れます。
3. 「OK」を押すと、メニューに「開発」タブが出現します。これで準備完了です!

—

3. 【実践】日付付き自動バックアップの全コード

「開発」タブの中にある「Visual Basic」をクリック(または `Alt + F11` キー)すると、VBA専用の画面(VBE)が開きます。

メニューの `[挿入]` > `[標準モジュール]` をクリックし、開いた白い画面に以下のコードを丸ごとコピー&ペーストしてください。

Sub AutoBackupPresentation()
‘ =====================================================================
‘ 目的: 現在開いているプレゼンテーションを指定フォルダに日付付きで保存する
‘ 対象: 初学者の方(マクロの記録からのステップアップに最適)
‘ =====================================================================

Dim targetPath As String
Dim originalName As String
Dim ext As String
Dim dateStr As String
Dim newFileName As String
Dim fullPath As String

‘ 1. 【重要】バックアップ先の共有フォルダパスを指定してください
‘ ※末尾のバックスラッシュ(\)を忘れないように注意!
targetPath = “C:\Users\Public\Documents\PresentationBackup\”

‘ 【安全装置①】大元のプレゼンテーションが一度も保存されていない場合はエラーを防ぐため処理を中断
If ActivePresentation.Path = “” Then
MsgBox “このプレゼンテーションはまだ一度も保存されていません。” & vbCrLf & _
“まずは適当な名前で一度保存してから実行してください。”, vbExclamation, “保存エラー”
Exit Sub
End If

‘ 2. 現在の日付を「YYYYMMDD」形式の文字列に変換する(例: 2023年10月24日なら “20231024”)
dateStr = Format(Date, “yyyymmdd”)

‘ 3. 現在のファイル名から拡張子(.pptx等)を除いた部分を取得する
originalName = ActivePresentation.Name
originalName = Left(originalName, InStrRev(originalName, “.”) – 1)

‘ 4. 新しいファイル名を組み立てる(例: 営業定例_20231024.pptx)
newFileName = originalName & “_” & dateStr & “.pptx”
fullPath = targetPath & newFileName

‘ 5. エラーハンドリング(フォルダが存在しない場合などの対策)を有効化
On Error GoTo ErrorHandler

‘ 6. 別名で保存を実行(現在のファイルを開いたまま、別名でコピーを保存するイメージ)
ActivePresentation.SaveCopyAs fullPath

‘ 7. 完了メッセージ
MsgBox “バックアップが完了しました!” & vbCrLf & _
“保存先: ” & fullPath, vbInformation, “保存成功”

Exit Sub

ErrorHandler:
‘ 万が一エラーが起きた場合のメッセージ
MsgBox “保存に失敗しました。” & vbCrLf & _
“エラー内容: ” & Err.Description & vbCrLf & _
“指定したフォルダ(” & targetPath & “)が存在するか確認してください。”, vbCritical, “致命的エラー”
End Sub

—

4. コードの深掘り解説:ここを理解すれば怖くない!

初心者エンジニアのあなたへ、このコードの重要なポイントを3つに絞って解説します。ここさえ分かれば、応用も自由自在です。

① `Format(Date, “yyyymmdd”)` の魔法

VBAには、今日の日付を取得する `Date` という便利な関数があります。しかし、そのままでは「2023/10/24」のようなスラッシュ(`/`)が含まれてしまい、ファイル名に使えません(Windowsではファイル名に `/` や `\` を使えないためエラーになります)。
そこで `Format(…, “yyyymmdd”)` で包むことにより、強制的に綺麗で安全な「20231024」という文字列に整形しています。

② `SaveCopyAs` という神メソッド

通常の `SaveAs` を使うと、今開いているファイルの「保存場所」自体が新しいバックアップ先に切り替わってしまい、その後に編集を続けると面倒なことになります。
ここで使っている `SaveCopyAs`(セーブ・コピー・アズ) は、「今の編集状態はそのままに、裏側でそっくりそのままのファイルを別の場所にコピー保存する」という、バックアップに最適な超強力なメソッドです。

③ 安全装置(`ActivePresentation.Path = “”` のチェック)

新規作成しただけでまだ一度も名前をつけて保存していない状態のファイルに対して、パス(保存場所)を聞こうとするとVBAはパニックを起こしてエラーになります。
それを防ぐために、事前に「まだ保存されてないよ!」と優しく警告して処理をストップさせる安全装置を仕込んでいます。こういう配慮ができるエンジニアは現場で重宝されます。

—

5. 運用時の注意点とトラブルシューティング

実際に運用する際は、以下の点にだけ注意してください。

  • 保存先のフォルダパスの書き換え:

コード内にある `targetPath = “C:\Users\Public\Documents\PresentationBackup\”` の部分は、皆さんの会社の共有フォルダのパス(例: `\\ServerName\ShareFolder\DailyReport\` など)に書き換えてください。最後の `\`(円マーク)を絶対に消さないのが、初学者がやりがちなミスを防ぐコツです。

  • マクロ有効プレゼンテーション(.ppsm / .pptm)としての保存:

このマクロを組み込んだファイルを保存する際は、ファイルの種類を通常の「PowerPoint プレゼンテーション(.pptx)」ではなく、「PowerPoint マクロ有効プレゼンテーション(.pptm)」にして保存してください。.pptxのままだと、書いたコードが消えてしまいます!

—

まとめ:ワンクリックの自動化から広がる世界

いかがでしたでしょうか?
今回作成したマクロをクイックアクセスツールバーに登録しておけば、資料を作り終えた瞬間に「画面上の小さなボタンを1回ポチるだけ」で、今日の日付入りのバックアップが共有フォルダにピタッと格納されます。

「たったこれだけのこと?」と思うかもしれませんが、日々のルーティンワークにおけるこの小さなストレスの削減こそが、知的生産性を上げるエンジニアの第一歩です。

ここをクリアしたあなたなら、次は「PDFに一括変換して保存する」「メールに自動添付する」といった、さらなる自動化の領域へもスムーズに進めるはずです。
ぜひ、明日の業務から試してみてくださいね。あなたのPowerPointライフがより快適になることを応援しています!

タイトルとURLをコピーしました