こんにちは!りゅう(@ryupong_b)です。
今回は、FileSystemObjectの設定や使い方を解説します。
今回は、FileSystemObjectを使うための設定方法と使い方を解説します。
「FileSystemObjectとは」という基本から、「設定方法」「コーディング」まで丁寧に解説します。
- FileSystemObjectの構成や基本知識が分かります。
- FileSystemObjectを使用するための設定を画像付きで解説します。
- コーディングの注意点などを、サンプルコードを用いて解説します。
前提
FileSystemObjectとは
ドライブやフォルダ、ファイルを操作するためのオブジェクトです。
FileSystemObjectには、3つのコレクションと 4種類のオブジェクトが用意されています。
非常にシンプルな構成となっているので、ソースコードの可読性も向上します。
# | コレクション | オブジェクト | 説明 |
---|---|---|---|
1 | Drives | Drive | ドライブを操作 | ドライブの情報取得
2 | Folders | Folder | フォルダを操作 | フォルダの情報取得
3 | Files | File | ファイルを操作 | ファイルの情報取得
4 | – | TextStream | テキストファイルを操作 | テキストファイルの情報取得
設定の手順
FileSystemObjectを使用するためには、参照設定という設定が必要となります。
以下に設定の手順を示します。
VBEの画面から、「ツール > 参照設定」を選択します。
参照設定ウィンドウより、「Microsoft Scripting Runtime」のチェックマークを付け、「OK」ボタンをクリックします。
FileSystemObjectを使用したコーディング
参照設定を終えた後、具体的にどのように使用するかをご説明します。
大きく分けて以下の3ステップでの使用が可能です。
- インスタンスを生成する
- FileSystemObjectを使用する
- インスタンスを解放する
インスタンスを生成する
FileSystemObjectを使用する前には、インスタンスというものを生成する必要があります。
インスタンスを生成する方法としては 2つのパターン があり、それぞれ解説します。
クラス変数とインスタンス生成を別々に実施する
まずはFileSystemObjectのクラス変数を宣言し、Newキーワードを用いてインスタンスを生成します。
(オブジェクト型の変数には、Setステートメントを使用してください。)
Public Sub useFileSystemObject()
' FileSystemObject型の変数を宣言
Dim fso As FileSystemObject
' インスタンスを生成
Set fso = New FileSystemObject
End Sub
クラス変数宣言と同時にインスタンスを生成する
クラス変数を宣言すると同時に、インスタンスを生成することが可能です。
Public Sub useFileSystemObject()
' FileSystemObjectインスタンスを生成
Dim fso As New FileSystemObject
End Sub
1行で表現できるので、ソースコードがスッキリします。
FileSystemObjectを使用する
前述の通り、FileSystemObjectを使用して、ファイルやフォルダ、ドライブの処理を呼び出すことが出来ます。
以下の例では、「ファイルの存在チェック」を実施しています。
Public Sub useFileSystemObject()
' FileSystemObject型の変数を宣言
Dim fso As New FileSystemObject
' ファイルの存在チェック
If fso.FileExists("C:\Users\xxx\Desktop\vba-hack\testFile.txt") Then
' ファイルが存在する
MsgBox "ファイルが存在します。"
End If
End Sub
インスタンスを解放する
オブジェクト型変数は、通常の変数とは異なり解放処理が必要となります。
使い終わったタイミングで、Nothingを代入しインスタンスを解放しましょう。
Public Sub useFileSystemObject()
' FileSystemObject型の変数を宣言
Dim fso As New FileSystemObject
' ファイルの存在チェック
If fso.FileExists("C:\Users\xxx\Desktop\vba-hack\testFile.txt") Then
' ファイルが存在する
MsgBox "ファイルが存在します。"
End If
' インスタンスの解放
Set fso = Nothing
End Sub
最後に
今回は、FileSystemObjectの使用方法と設定について解説しました。
FileSystemObjectは、参照設定をしたりインスタンスを作成・解放をしたりする手間があるものの、メソッド・プロパティのネーミングがシンプルなので、可読性が向上すると思っています。
この記事が、皆さんのお力になれば幸いです!
コメント