VBA 参照設定する

はじめに

Excel VBA マクロで参照設定する方法について紹介します。

参照設定すると VBA からファイルを操作できるようになるなど機能を拡張できます。

ツール > 参照設定 から、ライブラリを参照設定できます。

参照設定を開けないときは実行中の処理を中断しているときです。

CreateObject 関数を使用して、参照設定しなくてもライブラリを使用できます。

  • 目次
    • 参照設定する
    • 参照設定を開けない
    • 参照設定しないで使用する

参照設定する

[ツール] から [参照設定] をクリックします。

5

参照設定したい [ライブラリ] をチェックして [OK] をクリックします。

6

これで参照したライブラリに含まれている型が扱えるようになります。

7

どういうライブラリがあるのかは数が多すぎるので紹介できませんが「Microsoft Scripting Runtime」はファイル操作できるのでよく使われます。

詳しくは「FileSystemObject ファイル操作の基礎」をご覧ください。
参照設定している VBA を実行するには、実行環境にも同じ DLL が存在する必要があります。通常はエクセルがインストールされていれば問題ありません。存在しないときはエラーになります。

参照設定を削除する

参照設定を削除したい [ライブラリ] のチェックを外して [OK] をクリックします。

8

参照設定が削除されます。参照設定していたライブラリのコードが残っているときは、実行時にエラーになります。

9

参照設定を開けない

参照設定を開けないときは VBA が実行中で中断しているときです。

10

F5 キーを入力して処理を終了させると、参照設定できるようになります。

参照設定しないで使用する

参照設定しなくても、そのライブラリを使用する方法を紹介します。

CreateObject 関数」を使用して、指定したライブラリの型を扱えるようになります。

' FileSystemObject をインスタンス化する
Dim fso As Object
Set fso = CreateObject("Scripting.FileSystemObject")

' FileSystemObject を使用する
Dim exists As Boolean
exists = fso.FileExists("D:\test.txt")

' 後始末として必ず Nothing を設定してオブジェクトを解放する
Set fso = Nothing

このように参照設定したときと同じようにライブラリを使用できます。ただしインテリセンスが表示されないため、入力ミスには注意が必要です。

CreateObject 関数」を使用するメリットは、そのライブラリのバージョンの違いを考慮しなくてよくなります。参照設定する方法では、開発環境と実行環境でバージョンが違うとエラーになります。また、使用するライブラリが存在するのかチェックできます。