Accessでコンポーネントを使用するための方法などを解説 プログラムの部品のことで、それぞれ特定の機能をもっている VBAで使えるオブジェクトを検索・参照できるツール 画面左上に「FileSystemObject」と入力したところ、以下のように表示された ライブラリの参照設定後、外部のオブジェクトの参照するには以下の2通りの方法がある インスタンスの作成(オブジェクトへの参照を変数に格納)については以下記事内でも記載 利用したいライブラリファイルをあらかじめ選択する方法 <記載方法2> コードの実行時にオブジェクトを参照する方法 ライブラリファイルの選択を前もってしない代わりに 参照を解除したいときには以下のように記述
ライブラリファイルの参照設定
コンポーネントとは
Access自身が持っていないコンポーネントを使いたい場合には、外部のライブラリの参照設定を行う
【手順】VBEを開く - メニューバー上「ツール」 - 参照設定 - 利用ライブラリをチェック - OKボタン押下
▼参照設定ダイアログボックス▼
今後「Microsoft Scripting Runtime(FSO)」のライブラリ内のオブジェクト「FileSystemObject」を使用するため
画像のようにチェックを入れて参照設定を行う
オブジェクトブラウザとは
無事に参照設定ができているかどうかを確認してみる
【手順】VBEを開く - メニューバー上「表示」 - オブジェクトブラウザ
▼選択画面▼
どうやら、参照設定ができたようである
▼オブジェクトブラウザ画面▼
ちなみにこの画面はVBEのコードウィンドウの位置に表示された
外部オブジェクトの参照方法
どちらの方法をとるにしても、オブジェクトへの参照を変数に格納後、操作するというところは共通
▼クラスモジュールについて▼
tama-shi.hatenadiary.com■事前バインディング
固有オブジェクト型で宣言、実行時バインディングよりは処理速度が速くなる
※固有オブジェクト型:Form型,Label型,TextBox型などを指す
<記載方法1>
Dim オブジェクト変数 As 固有オブジェクト型
Set オブジェクト変数 = 固有オブジェクト型
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