FileSystemObject(FSO)を利用したファイル操作の基本は、操作したい対象のファイルやフォルダを、まず「オブジェクト」として取得することから始まります。
オブジェクトとして取得することで、そのファイルやフォルダが持つ様々な情報(名前、パス、サイズ、作成日時など)に簡単にアクセスできるようになります。
この記事では、FSOの**GetFileメソッドとGetFolderメソッド**を使い、ファイルやフォルダの情報を取得する基本的な方法を解説します。
【準備】参照設定
FSOを快適に利用するため、VBAエディタでツール > 参照設定を開き、**「Microsoft Scripting Runtime」**にチェックを入れておくことを推奨します。
完成したVBAコード
以下は、指定したファイルとフォルダの情報を取得し、その内容の一部をメッセージボックスに表示するVBAコードです。
'参照設定: Microsoft Scripting Runtime
Sub GetFileAndFolderInfo()
' 変数を宣言します
Dim fso As New FileSystemObject
Dim targetFile As File
Dim targetFolder As Folder
Dim message As String
'--- 設定 ---
Dim filePath As String
Dim folderPath As String
filePath = ThisWorkbook.FullName ' このExcelファイル自身を対象にする
folderPath = ThisWorkbook.Path ' このExcelファイルがあるフォルダを対象にする
'--- 設定ここまで ---
'--- 1. ファイルとフォルダのオブジェクトを取得 ---
' ファイルが存在するかを先に確認
If Not fso.FileExists(filePath) Then
MsgBox "指定されたファイルが見つかりません。", vbCritical
Exit Sub
End If
Set targetFile = fso.GetFile(filePath)
' フォルダが存在するかを先に確認
If Not fso.FolderExists(folderPath) Then
MsgBox "指定されたフォルダが見つかりません。", vbCritical
Exit Sub
End If
Set targetFolder = fso.GetFolder(folderPath)
'--- 2. オブジェクトのプロパティから情報を読み取る ---
message = "【ファイル情報】" & vbCrLf & _
"ファイル名: " & targetFile.Name & vbCrLf & _
"フルパス: " & targetFile.Path & vbCrLf & _
"サイズ: " & Format(targetFile.Size, "#,##0") & " バイト" & vbCrLf & _
"作成日時: " & targetFile.DateCreated & vbCrLf & _
"--------------------" & vbCrLf & _
"【フォルダ情報】" & vbCrLf & _
"フォルダ名: " & targetFolder.Name & vbCrLf & _
"親フォルダ: " & targetFolder.ParentFolder & vbCrLf & _
"含まれるファイル数: " & targetFolder.Files.Count & " 個"
'--- 3. 結果を表示 ---
MsgBox message, vbInformation, "ファイル・フォルダ情報の取得"
' オブジェクトを解放
Set targetFile = Nothing
Set targetFolder = Nothing
Set fso = Nothing
End Sub
コードのポイント解説
ファイルオブジェクトの取得: .GetFile
Set myFile = fso.GetFile("ファイルのフルパス") GetFileメソッドは、引数で指定されたパスのファイルをFileオブジェクトとして返します。オブジェクトを取得する前には、fso.FileExists("パス")でファイルの存在を確認しておくと、より安全なコードになります。
フォルダオブジェクトの取得: .GetFolder
Set myFolder = fso.GetFolder("フォルダのパス") GetFolderメソッドは、指定されたパスのフォルダをFolderオブジェクトとして返します。こちらも同様に、fso.FolderExists("パス")で存在確認をしてから取得するのが定石です。
主なプロパティ一覧
FileオブジェクトやFolderオブジェクトを取得すると、以下のような多彩なプロパティにアクセスできるようになります。
Fileオブジェクトの主なプロパティ
| プロパティ | 説明 |
.Name | ファイル名(拡張子を含む) |
.Path | ファイルのフルパス |
.ParentFolder | 親フォルダのパス |
.Size | ファイルサイズ(バイト単位) |
.Type | ファイルの種類(例: “Microsoft Excel ワークシート”) |
.DateCreated | 作成日時 |
.DateLastModified | 最終更新日時 |
.DateLastAccessed | 最終アクセス日時 |
Folderオブジェクトの主なプロパティ
| プロパティ | 説明 |
.Name | フォルダ名 |
.Path | フォルダのフルパス |
.ParentFolder | 親フォルダのパス |
.Size | フォルダ内の全アイテムの合計サイズ(バイト単位) |
.Files | フォルダ内の全Fileオブジェクトのコレクション |
.SubFolders | フォルダ内の全Folderオブジェクトのコレクション |
.DateCreated | 作成日時 |
まとめ
FSOを使ったファイル操作は、まず対象をオブジェクトとして取得することから始まります。
- ファイルの場合:
fso.GetFile("パス") - フォルダの場合:
fso.GetFolder("パス")
一度オブジェクトを取得してしまえば、.Nameや.Sizeといったプロパティを参照するだけで、そのファイルやフォルダに関する詳細な情報を簡単に、そして直感的に取得することができます。
副業から独立まで「稼げる」Webスキルを習得する(PR)
ここまで読んでいただきありがとうございます。 最後に宣伝をさせてください。
「副業を始めたいが、何から手をつければいいかわからない」「独学でスキルはついたが、収益化できていない」という悩みを持つ方には、マンツーマン指導のWebスクール**「メイカラ」**が適しています。
このスクールは、単に技術を教えるだけでなく、**「副業として具体的にどう稼ぐか」**という実務直結のノウハウ提供に特化している点が特徴です。
講師陣は、実際に「副業Webライターから1年で独立して月収100万円」を達成したプロや、現役で利益を出し続けているブロガーなど、確かな実績を持つプレイヤーのみで構成されています。そのため、机上の空論ではない、現場で通用する戦術を学ぶことができます。
副業に特化した強み
- 最短ルートの提示: 未経験からでも実績を出せるよう、マンツーマンで指導。
- AI活用の習得: 副業の時間対効果を最大化するための、正しいAI活用スキルも網羅。
- 案件獲得のチャンス: 運営がWebマーケティング会社であるため、実力次第で社内案件の紹介など、仕事に直結する可能性があります。
受講者の多くは、「在宅でできる仕事を探している」「副業を頑張りたい」という20代・30代・40代が中心です。
受講前には、講師による無料説明が行われます。無理な勧誘はなく、自分に合った副業スタイルやプランを相談できるため、まずは話を聞いてみることから始めてみてはいかがでしょうか。
