Excel-VBAで利用する「参照設定」。
[balloon_left img="https://tarmiyan.net/wp-content/uploads/2020/01/user-1.jpg" caption="ユーザー"]でも、参照設定って、どんな時に利用していいのかよくわからない・・・[/balloon_left]
そこで、この参照設定の利用目的や利用の仕方について詳しく解説していきましょう。
参照設定とは
参照設定の主な役割
そもそも、この参照設定とは、どんなものなのでしょうか?
参照設定とは、簡単に言うと、
<参照設定の主な役割>
- マクロを動かすようにするための設定機能
- マクロで利用できる機能を増やす
このように、マクロの機能をもっと増やすために利用します。
簡単なマクロの時には必要ない
簡単なマクロを作る時には、この設定は必要ありません。
特に、細かな設定を何もする必要がないということです。
高度なマクロを動かす時に利用する
[balloon_left img="https://tarmiyan.net/wp-content/uploads/2020/01/user-1.jpg" caption="ユーザー"]じゃあ、高度なマクロってどんなもの?[/balloon_left]
例えば、
- ACCESSとデータを連携する場合
のがあります。
つまり、基本的なマクロを作る場合には、細かな設定はいりませんが、色々なものと連携するためには、デフォルトでは、こうした連携するための環境が整っていないということなんです。
「マクロを動かして、色々なことをやりたい。」こうした方は、この設定の変更が必要になります。
設定画面
それでは、設定の変更はどこで行えばよいのか、ご紹介していきましょう。
まず画面項目位置をご確認下さい。
参照設定画面位置
下記画面をご覧ください。こちらが、「参照設定」の項目位置になります。
参照設定項目位置:「マクロ」➡「ツール」➡「参照設定」
参照設定画面
そして、参照設定画面を開くと、下記のような画面が出てきます。
中には、VBAで必要な各種Object Library(通称ライブラリー)が格納されています。
ライブラリーについて
上記、参照設定の各チェック項目が「ライブラリー」と言われます。
この参照設定の中に、様々なライブラリー項目が用意されており、それを使いたい用途に応じてチェックを入れて、必要なマクロの処理が動作するようになります。
参照設定は変更が必要な場合とは
それでは、この参照設定はどんな時に変更するとよいのでしょうか?
主に下記のような場合に参照設定の変更を行っていきます。
<参照設定の変更・追加が必要な場合とは>
- officeのバージョンが上がった時
- accessとの連携
- IEとの連携
- サーバーの活用
- VBSのプログラムを記述する時
例えば、OFFICEのバージョンが上がった場合には、その参照設定のライブラリー自体のバージョンが上がっていることがありますので、そうした場合には、ライブラリーのチェックを新しいものに変更して上げる必要性があるんです。
またMicrosoft Accessを利用されている場合には、DBを操作する場合には、「Microsoft ActiveX Data Object Recordset」
IE(Internet Explorer)を操作する場合には、「Microsoft IE control」等にチェックを入れる必要性があるんです。
参照設定の変更が必要だといつ判断できるの?
それではいったい、参照設定の変更が、必要かどうかの判断は、どんな時にわかるものなのでしょうか?
その答えは、
➡「vbaを利用している時に起こるエラーメッセージ」で判断することができます。
そのvbaを利用している時に起こるエラーメッセージとは、
「プロジェクトまたはライブラリが見つかりません。」
こうしたエラーメッセージがプログラム実行中に起こった場合には、参照設定のチェック項目が不足している可能性が高いです。
必要な項目を調べてチェックを増やしていきましょう。
「参照不可」の注意点
但し、参照設定を調べても、「参照不可」との記載があって、チェックができない場合があります。
そんなときは、エクセルの破損の可能性がありますので、Officeを再インストールの必要性があるかもしれません。
もし再インストールが可能であれば、もう一度入れ直しましょう。
まとめ
このように、参照設定は、マクロ自体の機能をさらに増やしたい場合に利用します。
あなたが作るマクロの動きには、もしかしたら、新たな機能が必要で、そんな参照設定の設定が必要かもしれません。
そんな場合には、まずマクロを動かして、ライブラリーがサポートされているのかをエラーを出すことで見極めることが大切です。