3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

MSProject2013でタスクのバー色をリソース名と連動する

Posted at

Microsoft Projectでタスクを誰かに割り当てたとき、担当者ごとに違う色をタスクのバーに割り当てると見やすくなるのでよくやります。しかし、自動でリソース名とバーの色を連動させる機能がないので、いちいち設定を変えねばなりません。これが結構面倒なので、リソース名を変更するとタスクのバーの色を事前に決めた色に自動的に変えるマクロを作ってみました。
※今回は画像中心でお伝えしていきます。
今回のサンプルは下記の3人のリソースを割り当てたとき、自動的にバーの色を割り当てるマクロを作ります。

image001.png
まず、クラスモジュールを作成します。
image003.png
イベントを受け取るモジュールなので、今回はEventClassModuleと名付けます。
image004.png
まずは、このクラスモジュールを編集していきます。
image005.png
下図のように宣言し、
image006.png
Editorウィンドウの左側のプルダウンメニューから「App」を選択すると、
image007.png
下図のように勝手に関数が追加されますが、これは使いません。
image008.png
右のプルダウンメニューから、「ProjectBeforeChange」を選択すると、下図のように関数の雛形が追加されます。最初に勝手に追加された、「App_NewProject」は使用しないので削除します。
image009.png
まずは、このイベントハンドラがちゃんとリソースを変更したときのイベントが取得できるか確認するために、MsgBox()関数を埋め込んで動かしてみます。しかし、まだこれだけではイベントを受け取れません。
image010.png
Projectのコードを開き、
image011.png
左側のプルダウンメニューから「Project」を選択し、
image012.png
Open()を追加し、
image015.png
下図のコードを追加します。
image025.png
これでようやく、イベントを拾えるようになります。
リソースを変更すると、メッセージが表示できるようになりました。
image026.png
メッセージを表示するのはこれで問題ありませんが、クラスモジュールからはバーの色を直接変えることはできないので、グローバル変数経由で変更のあったタスクがどれかをThisProjectに伝えます。ThisProject側にグローバル変数「msgStr」を宣言しておき、これにタスクIDを入れます。
image027.png
ThisProject側では、タスクの変更を検出するChange()関数を挿入しておきます。
image028.png
次に、各タスクをどのような色に変えるのか、調べておきます。
image029.png
バーの設定ダイアログを開き、
image030.png
「色」項目のポップアップメニューで「その他の色」を選択すると、RGBそれぞれの値を知ることができるので、メモっておきます。
image031.png
先程追加したChange()関数で、下記のようにリソース名とバー色の関係を記述します。
image032.png
これで、下図のようにリソース名を変更すると、
image033.png
リソースのバー色に変更されるようになりました。
image034.png
メデタシメデタシ。

3
3
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?