【入門編】【初心者向け】ベースライン設定の自動化:現在の計画をワンクリックで保存する方法 – Project VBA解析バイブル

スポンサーリンク

現場で差がつく!「ベースライン保存」をワンクリックで自動化するProject VBAの極意

こんにちは。現場の最前線でProject VBAと格闘してきた、あなたの技術的な「相棒」です。

「ベースライン」という言葉、Projectを触る方なら一度は耳にしますよね。計画(プラン)が走り出す直前に、「この時点での予定」をスナップショットとして残す。これがないプロジェクト管理は、羅針盤を持たずに荒海へ出るようなものです。

手動でメニューを辿って保存するのは、もう卒業しましょう。今回は、`BaselineSave`メソッドを使い、たった一行の命令で今の計画を刻み込む、シンプルかつ強力な自動化マクロを伝授します。

なぜ「マクロの記録」ではダメなのか?

まず、皆さんが最初に出会う壁についてお話しします。Excelなどと違い、Microsoft Projectには「マクロの記録」機能が存在しません。

これはMicrosoftからの無言のメッセージです。「Projectの背後にあるオブジェクトモデルは複雑だ。だからこそ、仕組みを理解してコードを書きなさい」と。

怖がる必要はありません。Project VBAの核となる概念さえ掴めば、実はExcel VBAよりもずっとシンプルで力強い制御ができるようになります。

実装:ベースライン保存の自動化コード

では、早速コードを見ていきましょう。以下のコードを標準モジュールに貼り付けてみてください。

Sub SaveCurrentBaseline()
‘ エラーハンドリング:プロジェクトが開かれていない場合の保険
On Error GoTo ErrorHandler

‘ 現在の計画をベースライン(Baseline)として保存する
‘ AllTasks:=True は「全てのタスクを対象にする」という指定です
BaselineSave AllTasks:=True, _
CopyFrom:=pjCopyFromProject, _
Into:=pjBaseline

MsgBox “ベースラインの保存が完了しました!これで進捗管理の準備は万全です。”, vbInformation
Exit Sub

ErrorHandler:
MsgBox “エラーが発生しました: ” & Err.Description, vbCritical
End Sub

コードのポイント解説

  • `BaselineSave`メソッド: これが今回の主役です。Projectのオブジェクトモデルにおいて、スケジュールを保存する唯一無二の命令です。
  • `AllTasks:=True`: これを指定しないと、選択中のタスクのみ保存されるという「罠」に陥ります。自動化の際は必ず全体を対象にしましょう。
  • `pjBaseline`: これは「ベースライン(現在の計画)」を指す定数です。他にも`pjBaseline1`〜`pjBaseline10`まで指定でき、計画変更の履歴を階層的に管理することも可能です。

初学者が陥りやすい「3つの落とし穴」

このコードを書いていく中で、多くの初心者が躓くポイントがあります。ここをクリアすれば、あなたはもう中級者の入り口に立っています。

1. 「プロジェクトファイルが開かれていない」エラー

  • VBAは「今アクティブなプロジェクト」に対して命令を出します。ファイルが一つも開いていない状態で実行すると、`BaselineSave`は実行できずエラーを吐きます。必ず`On Error GoTo`で制御を。

2. ベースラインは「上書き」される

  • `BaselineSave`は、同じベースライン番号(例:pjBaseline)に対して何度でも実行できます。つまり、誤った状態で保存すると、前のデータが消えます。「確定した時だけ保存する」運用を徹底してください。

3. 保存後の「保存」を忘れる

  • VBAでベースラインを保存しても、それはメモリ上の操作です。最後に`FileSave`メソッドを呼ぶか、手動で上書き保存しない限り、プロジェクトファイルを閉じると変更は消えてしまいます。

伝説のアーキテクトからのアドバイス

「なぜわざわざコードを書くのか?」その答えは、「ヒューマンエラーの排除」です。

人間は、忙しいプロジェクトの最中に「ベースラインの取り忘れ」を必ずやらかします。しかし、マクロなら忘れません。さらに言えば、このコードを「プロジェクトを開く時に自動実行する」ように改造すれば、常に最新の計画がベースラインとして維持される仕組みも作れます。

ここをクリアすれば、Project VBAの基本はバッチリです。次は「特定の日付のデータを抽出してレポートにする」といった、より高度な領域へ進んでいきましょう。

あなたのプロジェクト管理が、この小さなコードで少しでも楽になることを願っています。何か詰まったら、いつでも戻ってきてくださいね。応援しています!

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