今回のサンプルは、Excel2002/2003/2010(64ビット)で動作を確認しています。
今月の相談
 先日、共有するブックで問題が発生したので、誰がどのような変更をしたか調べたのですが、ブックのプロパティでは「作成者」の名前しかわかりません。今後このような問題が発生した場合に追跡調査ができるように、末尾のシートに変更記録を残すことにしました。マクロ一式、御教授ください。

「先生、これは、朝飯前ですか?夜飯前ですか?」
「何だね?その夜飯前と言うのは」
「朝飯前は、お茶の子さいさい、簡単なことだって意味でしょ?」
「そうじゃな。江戸時代中期まで、食事は1日2回。朝飯前は非常に腹が減っておる。その空腹の状態でもこなせる仕事ってことで、簡単な仕事を意味するようになった」
「だったら、夜飯前は、難しいことでしょうに!」
「げへっ」
「で、どうなんですか?朝飯前なんですか?それとも夜飯前なんですか?」
「昼飯前ってとこかな?」
「なんですかぁ?」
「それほど、複雑なコードでもないし、長くもない。しかし、API(Application Programming Interface)を使わねばならん。よって、簡単でもあり、難しくもある。だから昼飯前」
「むむぅ・・・」

「ゲール君、変更履歴に必要なパラメーターは何だと思うかね?」
「え~っとぉ・・・日付」
「うむ、それから?」
「年月日」
「うん、それは日付と同じだねぇ」
「え~っと、西暦!」
「それも、広~い意味で日付と同じだねぇ」
「時刻!」
「うむ、他には?」
「わからん!御前の話は、よ~~わからん!」
「はいはい、他には浮かんでこないってことじゃな」
「ピンポ~ン」
「患者さんの話によると、誰かがブックに変更を加えて問題が生じた。で、今後、同様の問題が発生した場合に、その原因を突き止める手段として、変更履歴を残したいということだな」
「そのようですね」
「と、なると、誰が、いつ、どこでそのブックをいじったかを知りたいんじゃないかな?」
「その通り!」
「君が偉そうに言うな」
「こりゃ、失敬!」
「明治の書生か!君は」
「いちいち突っ込まない」
「はい」
「で、必要な情報は何かな?」
「はい、必要な情報は、日付、時刻、PC名、ユーザー名、ディレクトリの五つであります」
「では早速プログラミングにとりかかりたまえ」
「はっ!・・・って、おい!何で、わしが命令されるんじゃ?」
「いいから、いいから」