Excel VBAの参照設定の優先順位(参照不可)

あることは知っていたけど、意味がわからなかった参照設定の優先順位。
これの意味がわからなかった。せいぜい処理速度の問題かなとか、適当に解釈していましたが、ようやくわかりました。アドイン、COMなどを導入するときに、同じ関数名など存在した場合、優先順位の上位のものを採用される、ということのようです。

WORKDAY関数
これがExcel2003までは、アドインで分析ツールを追加することで使えていたものが、Excel2007では標準で使えます。古いExcel2002とかで作ったWORKDAY関数が組み込まれたものがあった場合、それをExcel2007で開いてしまうと新しいWORKDAY関数を参照してしまい、うまくいきません。これは、直接アドインのファイル名を指定することで対応できるのですが、それはさておき、そういうのってわかりづらいですよね。

参照設定画面で「参照不可:」と表示されているもの
参照設定画面の中で「参照不可:」と表示されることがあるとおもいます。
別の端末で作成したExcelを開いたときに、COMやAddinがその端末には存在しなければ、参照不可ですので、「参照不可:」となります。実はこれが大問題となるとはわかりませんでした。
「参照不可:」が存在しているその下で□にチェックが入っていて有効に見えても、優先順位の上位に「参照不可:」があれば、それ以下のものはすべて使えなくなっておりました。

単純に、優先順位を上位にすれば、問題解決しました

参照不可だったら、自動的に優先順位を下げるなり、無視するなりできないものですかね。警告くらいでてもいいものですよ。
ちょっと不親切ですね。

余談ですが、Excel2007からのVBAは、マウスのホイールが使えます!。スクロールするんですよ!
たった一つのことですが、このスクロールができるとできないでは、ずいぶんとストレスでしたから。
些細なことだけに見送られていた機能かもしれませんが、こういうの大事ですね。
 

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です