
■ 始まり
同僚が、ふらっと(倒れそうな勢いで仕事中の)私の横にやってきて、「パソコン新しくしたら、今まで使ってたExcelが動かなくなった」とか言い始めました。
...えーと、それは私に対応しろって事ですかねぇ?
■ 障害の内容
発生したエラーはこんな感じです。

コンパイルエラー:
プロジェクトまたはライブラリが見つかりません。
どのマクロを動かそうとしても同じエラーが発生するし、コンパイルをするとFormatメソッドにカーソルが当たって同様のエラーが発生します。
パソコンの環境は、Windows7で、これまでのWindowsXPでは問題なく動作したと言っています。
試しに、問題のExcelファイルを私のパソコン(WindowsXP)で実行するとエラーは発生しません。
ここまでの調査で、環境依存の問題で、マクロ全体で何かエラーが発生していると思われます。
まぁ、エラーメッセージの通りなんですがね。
■ 障害の原因
このエラーで良くあるのが、これまで知らずに使用していたライブラリが新しいパソコンに存在しないって事です。
エラーのポップアップから「OK」ボタン、あるいは、VBA画面から、ツール → 参照設定 を表示します。

参照設定は、こんな感じになっていました。

ふむ、Microsoft FlexGrid Control 6.0 (SP3)なるものが参照不可になっています。
どうやら、これが原因のようです。
■ 障害の対応
とりあえず、このライブラリを使用しないようにしたところ、エラーが発生しなくなりました。
どうやら、ライブラリの参照設定だけで、実際には使用していなかったようです。
もし使用していたら、ちょっと厄介だったかも知れませんね。
■ 過去の遺産
今回の、Microsoft FlexGrid Control 6.0 (SP3)ってVisual Basic 6.0 のライブラリの一つになります。
VB6なんて、とうに消え去っても良さそうな過去の遺物って感じもしますが、なかなか駆逐されないようです。
さしものMicrosoftも、これを完全に使えなくするのは問題だと思ったらしくて、ある程度は対応しているようです。
参考:http://msdn.microsoft.com/ja-jp/vstudio/ms788708.aspx
■ 後書き
今回のエラー、私の経験上は上の記事に書いている通りでライブラリが使用できない事が理由だったりするのですが、まれに理解不能なエラーが発生することがあります。
以前、どうしてもエラー発生の原因が分らず、自棄になって全てのモジュールをエクスポート&解放で全削除して、エクスポートしたモジュールをインポートしたら動いたって事もありました。
うーむ、Excelのマクロは簡単に動かせるので便利ですが、以外と奥が深いんですよね。
スポンサードリンク


