【入門編】リソースの「スキルタグ」をカスタムフィールドで管理し、最適な要員を自動抽出する検索エンジン – Project VBA解析バイブル

スポンサーリンク

こんにちは! プロジェクト管理の現場で、日々リソースの割り当てやスケジュール調整に頭を悩ませていませんか?

「このタスクに最適なスキルを持ったメンバーは誰だっけ…?」
「スケジュールが空いていて、かつレベルを満たしている人を探すのに何時間もかかっている…」

そんな非効率な泥臭い作業とは、今日でサヨナラしましょう。今回は、Microsoft ProjectのVBA(Visual Basic for Applications)を使って、リソースのスキルタグと稼働状況を自動で照合し、最適な要員を瞬時に抽出する「スキルマッチング検索エンジン」の作り方を解説します。

マクロの記録から一歩抜け出して、本当の意味でProject VBAを使いこなすための極意を、優しく丁寧にお伝えしていきますね。ここをクリアすれば、Project VBAの基本はバッチリですよ!

—

1. なぜ「カスタムフィールド」と「VBA」を組み合わせるのか?

MS Projectには標準でリソースプール機能がありますが、複雑なスキル要件(例えば、「Pythonがレベル3以上、かつ来週空いている人」など)を瞬時に判断してアサインするのは、人間にとっても標準機能にとっても少し荷が重い作業です。

ここで活躍するのが、リソースの「テキスト系カスタムフィールド(Text1〜Text30など)」にスキルタグを埋め込み、VBAで力づく…ではなくスマートに検索させるアプローチです。

押さえておくべきProject VBAの基本構造

Excel VBAと違い、Project VBAでは「タスク(Task)」「リソース(Resource)」「アサインメント(Assignment)」という3つの巨大なオブジェクトが複雑に絡み合っています。
今回はその中から、リソースオブジェクトの持つカスタムフィールドと、稼働状況(Availability)をVBAで縦横無尽にハントする方法を学びます。

—

2. 準備:カスタムフィールドの設定

まずは、Projectの「リソースビュー」を開き、リソースにスキル情報を持たせるための準備をします。

1. メニューの [プロジェクト] > [カスタム フィールド] を開きます。
2. 種類の選択で [リソース] を選び、フィールドの種類を [テキスト] にします。
3. `Text1` の名前を 「スキルタグ」 に変更します(例:「VBA,Python,Excel」のようにカンマ区切りで入力しておきます)。

これで、リソース側に検索の目印ができました。

—

3. 実装:要員自動抽出エンジン(VBAコード)

それでは、今回のメインである検索エンジンのコードを公開します。
VBAエディタ(`Alt + F11`)を開き、標準モジュールに以下のコードを貼り付けてください。

実務ですぐにコピー&ペーストして使えるよう、一行ずつ丁寧なコメントを入れています。

‘ ==============================================================================
‘ 処理名 : スキルマッチング・要員自動抽出エンジン
‘ 概要 : 指定されたスキルキーワードと合致し、リソースプールから最適な候補者を抽出する
‘ ==============================================================================
Sub SearchOptimalResource()

Dim

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