VBA FileSystemObject (FSO)
Excel VBA FileSystemObject (FSO)
VBA FileSystemObject (FSO) は、作業中のコンピュータの他のファイルにアクセスするために使われる、ファイルダイアログに似た働きをします。 我々はまた、これらのファイルを編集することができますファイルの読み取りまたは書き込みを意味します。 FSOを使用すると、ファイルにアクセスし、それらを使って作業し、ファイルやフォルダを変更することができます。 FSOは、VBAでアクセスできる重要なAPIツールです。 VBA プロジェクトの一環として、仕事を完了するためにコンピューター内のいくつかのフォルダーやファイルにアクセスする必要があるかもしれません。
FSO を使用すると、「フォルダーが利用可能かどうかを確認する」「新しいフォルダーやファイルを作成する」「既存のフォルダーやファイルの名前を変更する」「フォルダー内のすべてのファイルとサブフォルダー名の一覧を取得するなど多くの作業を実行することができます。 最後に、ある場所から別の場所にファイルをコピーできます。
フォルダーやファイルを操作するために利用できる他の関数がある場合でも、FSO は VBA コードをすっきりとまっすぐに保つことによって、フォルダーやファイルを操作する最も簡単なメソッドとなります。
- ドライブ。 このオブジェクトを使用すると、指定したドライブが存在するかどうかを確認できます。 パス名、目的のタイプ、およびエンタープライズ.
- Folderを取得できます。 このオブジェクトは、特定のフォルダが存在するかどうかを確認することができます。 このオブジェクトを使用して、フォルダの作成、削除、変更、コピーができます。
- File:このオブジェクトは、特定のファイルが存在するかどうかを確認することができます。 このVBAオブジェクトを使用して、ファイルの作成、削除、変更、コピーを行うことができます。
- Text Stream:
上記のすべてのメソッドで動作するように彼らの方法を持っています。 要件に基づいて、各オブジェクトのメソッドを選択できます。

How to Enable FileSystemObject?
それはVBAで容易にアクセスできるものではありません。 ファイルやフォルダへのアクセスはエクセルの外側の作業なので、FileSystemObjectを有効化する必要があります。 77669>
Step #1: Tools>References.

ステップ #2 – ‘Microsoft Scripting Runtime’ オプションを選択
下にスクロールして ‘Microsoft Scripting Runtime’ オプションを選択してください。

これで、VBA で FileSystemObject (FSO) にアクセスできます。
Create an Instance of FileSystemObject
オブジェクトライブラリで ‘Microsoft Scripting Runtime’ オプションが有効になったら、コーディングで File System Object (FSO) を作成する必要があります。
4.6 (評価数 247) 3コース|12ハンズオンプロジェクト|43時間以上|生涯フルアクセス|修了証
インスタンスを作成するには、まず、変数を FileSystemObject として宣言します。

このように、VBA のインテリセンス リストに FileSystemObject が表示されるようになりました。
FSO はオブジェクトなので、新しいインスタンスを作成するために設定する必要があります。

これで、FSO (FileSystemObject) のすべてのオプションにアクセスできるようになりました。

VBA FileSystemObject の使用例
Example #1 – Find the Total Drive Space
以下のコードでドライブの総容量が表示されます。
コード:
Sub FSO_Example1() Dim MyFirstFSO As FileSystemObject Set MyFirstFSO = New FileSystemObject Dim DriveName As Drive Dim DriveSpace As Double Set DriveName = MyFirstFSO.GetDrive("C:") 'Create new drive object DriveSpace = DriveName.FreeSpace 'This will get the free space of the drive "C" DriveSpace = DriveSpace / 1073741824 'This will convert the free space to GB DriveSpace = Round(DriveSpace, 2) 'Round the total space MsgBox "Drive " & DriveName & " has " & DriveSpace & "GB"End Sub

コードの分解
最初に、FSOのインスタンスを作成しました。
Dim MyFirstFSO As FileSystemObjectSet MyFirstFSO = New FileSystemObject
次に、2つの変数を宣言しました。
Dim DriveName As DriveDim DriveSpace As Double
ドライブネームはオブジェクト変数なので、FSOメソッドの1つにこれを設定する必要があります。 ドライブの特性が必要なので、Get Drive オプションを使用してドライブ名を指定しました。
Set DriveName = MyFirstFSO.GetDrive("C:")
別の変数 DriveSpace には、アクセスしているドライブの空き領域メソッドを割り当てます。
DriveSpace = DriveName.FreeSpace
現在のところ、上記の式で “C” ドライブの空き領域を取得することができます。 そこで、結果をGBで表示するために、空き容量を1073741824
DriveSpace = DriveSpace / 1073741824
で割りました。次に、数字を丸めます。
DriveSpace = Round(DriveSpace, 2)
最後に、結果をメッセージボックス
MsgBox "Drive " & DriveName & " has " & DriveSpace & "GB"
で表示します。「

つまり、私のコンピュータでは、C ドライブに 216.19 GB の空き容量があります。
例 2 – フォルダが存在するかどうかを確認する
特定のフォルダが存在するかどうかをチェックするには、次のコードを使用します。
指定したフォルダが存在する場合、”指定したフォルダは利用可能です “というメッセージボックスが表示されます。 そうでない場合は、”The Mentioned Folder is Not Available “とVBAメッセージボックスが表示されます。
Code:
Sub FSO_Example2() Dim MyFirstFSO As FileSystemObject Set MyFirstFSO = New FileSystemObject If MyFirstFSO.FolderExists("D:\Excel Files\VBA\VBA Files") Then MsgBox "The Mentioned Folder is Available" Else MsgBox "The Mentioned Folder is Not Available" End IfEnd Sub

ExcelショートカットキーF5または手動を通してこのコードを実行してから結果を確認してください。

例3 – ファイルが存在するかどうかを確認する
次のコードは、指定したファイルが存在するかどうかを確認します。
コード:
Sub FSO_Example3() Dim MyFirstFSO As FileSystemObject Set MyFirstFSO = New FileSystemObject If MyFirstFSO.FileExists("D:\Excel Files\VBA\VBA Files\Testing File.xlsm") Then MsgBox "The Mentioned File is Available" Else MsgBox "The Mentioned File is Not Available" End IfEnd Sub

このコードを手動またはF5キーを使用して実行し、結果を確認します。 ここでは、VBAでFileSystemObject(FSO)を使用して、コンピュータからファイルやフォルダにアクセスする方法と実践例、ダウンロードできるExcelのテンプレートについて説明します。 以下、エクセルVBAのお役立ち記事 –
- VBAのMEキーワード
- VBAのStrComp関数
- StrConvをご紹介しております。 VBAの関数
- VBA IIF
- 3コース
- 12ハンズオンプロジェクト
- 43時間以上
- 生涯アクセス
- 修了証
Learn More >>
の項参照。