オブジェクトライブラリへの参照設定とそのメリットについて説明します。
HOME | 更新履歴 | ご利用上の注意事項 | FAQ | プライバシーポリシー | サイトマップ | Excel VBA 質問掲示板
日付
累計
本日
累計
本日
:
:
:
:
:
アクセス上位ページ
- コンボボックス
- テキストファイル読込
- セルの書式(背景色・パターン)
- AutoFilter メソッド
- Dir関数
- テキストファイル新規書込
- InStr関数
- InputBoxメソッド
- Sort メソッド
- マクロ有効ブックの保存と設定
- 比較演算子 ( Like も含む)
- テキストボックス
- FileDialogオブジェクト@
- ワークシートの数
- FileDialogオブジェクトA
- セルの書式(保護)
- Hidden プロパティ
- ワークシート関数によるカウント処理
- Split関数
- オブジェクト変数と Set
- オプションボタン
- OpenTextFile メソッド
- セルの書式(表示形式)
- チェックボックス
- LBound、UBound関数
- ラベル
- リストボックス
- FSOによるファイルコピー
- プロシージャの呼び出し
- ステップ実行
最近の更新内容
- 2016/5/7 ページ追加 1.(7)-n.PrintPreview メソッド
- 2015/12/13 ページ追加 5.(2)-i.トグルボタン
- 2015/10/18 『比較演算子 ( Like も含む)』内容修正
1.(7)-o.PrintOut メソッド
1.(7)-p.印刷ヘッダー、フッターの設定
5.(2)-j.スクロールバー
5.(2)-k.スピンボタン
5.(2)-l.イメージ
(1)-b.ファイルシステムオブジェクトの生成 ⇐ [PREV]
[NEXT] ⇒ (2).FSOによるファイル操作
Excel VBA ≫ 3.FSO - 概要 ≫ (1)-c.オブジェクトライブラリへの参照設定
オブジェクトライブラリへの参照設定
ファイルシステムオブジェクトはVBAに組み込まれているオブジェクトではなく外部のオブジェクトライブラリ(scrrun.dll)により提供されています。
このページではそのオブジェクトライブラリへの参照設定について説明します。
参照設定とは外部ライブラリとして提供されるオブジェクトを使用する場合に、事前にその外部ライブラリへの参照を設定しておくことを言います。 この設定は必須ではないので読み飛ばしていただいても問題ありません。 ただ、この参照設定によっていくつかメリットが得られますので、ファイルシステムオブジェクトを使用するのなら設定しておいて損はないでしょう。
<補足>
FileSystemObject型を宣言する際にキーワード New を使用すると、
オブジェクトの初回参照時にインスタンスが自動的に生成されます。
このため、CreateObject関数でインスタンスを生成する手順を省略することができます。
(※省略しなくても全く問題ありません。)
このような理由からこれ以降のサンプルマクロについては参照設定をしていない状態でも動くコードを記述したいと思っております。 参照設定を行っている方は必要に応じてサンプルマクロ内の型を最適な型へ修正していただくよう、お願い申し上げます。
参照設定とは外部ライブラリとして提供されるオブジェクトを使用する場合に、事前にその外部ライブラリへの参照を設定しておくことを言います。 この設定は必須ではないので読み飛ばしていただいても問題ありません。 ただ、この参照設定によっていくつかメリットが得られますので、ファイルシステムオブジェクトを使用するのなら設定しておいて損はないでしょう。
参照設定のメリット
- 自動クイックヒントが表示されるようになる オブジェクト変数を宣言する際に、Object型ではなく最適な型で宣言することで自動クイックヒントが表示されるようになります。 ファイルシステムオブジェクトには多くのプロパティおよびメソッドが存在していますので、 コードを記述する際に自動クイックヒントが表示されるのは大きなメリットになります。
- オブジェクト変数を最適な型で宣言することで、処理のパフォーマンスが向上する
(Excel2007ヘルプ情報)

参照設定の方法
- VBEメニューの [ ツール ] から [ 参照設定 ] を選択する。
- 表示された参照設定ダイアログから "Microsoft Scripting Runtime" にチェックを入れて
[ OK ] ボタンを押下する。


最適な型による宣言
前ページの使用例では参照設定をしていない前提なので、変数の型をすべて Object 型にしていました。 参照設定の恩恵を最大限受けるには Object 型ではなく以下に記載した最適な型で宣言する必要があります。- ファイルシステムオブジェクト ・・・ FileSystemObject 型
- ファイルオブジェクト ・・・ File 型
- ファイルコレクション ・・・ Files 型
- フォルダオブジェクト ・・・ Folder 型
- フォルダコレクション ・・・ Folders 型
- ドライブオブジェクト ・・・ Drive 型
- ドライブコレクション ・・・ Drives 型
- テキストストリーム ・・・ TextStream 型
- 前ページ最初の使用例を最適な型で宣言すると以下のようになります。
'ファイルシステムオブジェクトへの参照を格納するための変数 Dim fso As FileSystemObject 'ファイルオブジェクトへの参照を格納するための変数 Dim fileObj As File 'フォルダオブジェクトへの参照を格納するための変数 Dim folderObj As Folder 'ファイルシステムオブジェクトの生成と変数への格納 Set fso = CreateObject("Scripting.FileSystemObject") 'カレントフォルダ内にある"test.txt"のファイルオブジェクトを取得 Set fileObj = fso.GetFile("test.txt") '"test.txt"の作成日時、最終更新日時を表示 MsgBox "作成日時 :" & fileObj.DateCreated & vbLf & _ "最終更新日時:" & fileObj.DateLastModified 'カレントフォルダのフォルダオブジェクトを取得 Set folderObj = fso.GetFolder(CurDir) 'カレントフォルダ内のファイルとフォルダ数を表示 MsgBox "ファイル数:" & folderObj.Files.Count & vbLf & _ "フォルダ数:" & folderObj.SubFolders.Count
'ファイルシステムオブジェクトへの参照を格納するための変数 Dim fso As New FileSystemObject 'ファイルオブジェクトへの参照を格納するための変数 Dim fileObj As File 'フォルダオブジェクトへの参照を格納するための変数 Dim folderObj As Folder 'ファイルシステムオブジェクトの生成と変数への格納Set fso = CreateObject("Scripting.FileSystemObject")'カレントフォルダ内にある"test.txt"のファイルオブジェクトを取得 Set fileObj = fso.GetFile("test.txt") '"test.txt"の作成日時、最終更新日時を表示 MsgBox "作成日時 :" & fileObj.DateCreated & vbLf & _ "最終更新日時:" & fileObj.DateLastModified 'カレントフォルダのフォルダオブジェクトを取得 Set folderObj = fso.GetFolder(CurDir) 'カレントフォルダ内のファイルとフォルダ数を表示 MsgBox "ファイル数:" & folderObj.Files.Count & vbLf & _ "フォルダ数:" & folderObj.SubFolders.Count
これ以降のページに掲載するサンプルマクロについて
このページでは参照設定することをお勧めしました。しかし、当サイトを訪問したすべての方々が参照設定を行っていることはおそらくないと思います。 参照設定をしていない方々がこのページを必ず閲覧するとも限らないですし、閲覧したからと言って必ず参照設定するとも限らないでしょう。このような理由からこれ以降のサンプルマクロについては参照設定をしていない状態でも動くコードを記述したいと思っております。 参照設定を行っている方は必要に応じてサンプルマクロ内の型を最適な型へ修正していただくよう、お願い申し上げます。
カテゴリ内ページ