たま氏の覚え書き

KNIME・AccessVBA・Swift等、学習したことを覚え書き

AccessVBA_外部のライブラリファイルの参照設定と利用方法

Accessコンポーネントを使用するための方法などを解説

ライブラリファイルの参照設定

コンポーネントとは

プログラムの部品のことで、それぞれ特定の機能をもっている
Access自身が持っていないコンポーネントを使いたい場合には、外部のライブラリの参照設定を行う

【手順】VBEを開く - メニューバー上「ツール」 - 参照設定 - 利用ライブラリをチェック - OKボタン押下

▼参照設定ダイアログボックス▼


今後「Microsoft Scripting Runtime(FSO)」のライブラリ内のオブジェクト「FileSystemObject」を使用するため
画像のようにチェックを入れて参照設定を行う

オブジェクトブラウザとは

VBAで使えるオブジェクトを検索・参照できるツール
無事に参照設定ができているかどうかを確認してみる

【手順】VBEを開く - メニューバー上「表示」 - オブジェクトブラウザ

▼選択画面▼


画面左上に「FileSystemObject」と入力したところ、以下のように表示された
どうやら、参照設定ができたようである
▼オブジェクトブラウザ画面▼

ちなみにこの画面はVBEのコードウィンドウの位置に表示された

外部オブジェクトの参照方法

ライブラリの参照設定後、外部のオブジェクトの参照するには以下の2通りの方法がある
どちらの方法をとるにしても、オブジェクトへの参照を変数に格納後、操作するというところは共通

インスタンスの作成(オブジェクトへの参照を変数に格納)については以下記事内でも記載
▼クラスモジュールについて▼
tama-shi.hatenadiary.com

■事前バインディング

利用したいライブラリファイルをあらかじめ選択する方法
固有オブジェクト型で宣言、実行時バインディングよりは処理速度が速くなる
※固有オブジェクト型:Form型,Label型,TextBox型などを指す

<記載方法1>
Dim オブジェクト変数 As 固有オブジェクト型
Set オブジェクト変数 = 固有オブジェクト型

<記載方法2>
Dim オブジェクト変数 As New 固有オブジェクト型

例:項1で参照設定を行った「FileSystemObject(FSO)」を事前バインディングで参照
▼記述例▼

'記載方法1
Dim FSO As FileSystemObject
Set FSO = New FileSystemObject

'記載方法2
Dim FSO As New FileSystemObject


■実行時バインディング(遅延バインディング

コードの実行時にオブジェクトを参照する方法
先述のライブラリファイルの選択はせずに利用することが可能

ライブラリファイルの選択を前もってしない代わりに
総称オブジェクト型で宣言し、実行時にCreateObject関数を使用してオブジェクトへの参照を変数に格納
※総称オブジェクト型:Object型のこと

<記載方法>
Dim オブジェクト変数 As Object
Set オブジェクト変数 = CreateObject(参照するオブジェクトのクラス名)


例:項1で参照設定を行った「FileSystemObject(FSO)」を実行時バインディングで参照
▼記述例▼

Dim FSO As Object
Set FSO = CreateObject("Scripting.FileSystemObject")


■Nothingでオブジェクトを開放

参照を解除したいときには以下のように記述
<記載方法>
Set オブジェクト変数 = Nothing