【下記のプログラムを実行準備】
① シート名を「Sheet1」
② ”C:\DATA\Master1.xlsx” の「フォルダー」と「ファイル」を作成します。
'
'******** AKIRA55.COM ******* https://akira55.com/file_attributes '
'
Sub file_attributes01() '選択したファイルの属性を表示じます。
Dim File_function As New Scripting.FileSystemObject
Dim SetFile As Scripting.File
Dim ws01 As Worksheet
Dim FolderName As String
Set ws01 = Worksheets("Sheet1")
FolderName = "C:\DATA\Master1.xlsx" '保存されている保存先(ファイル)
Set SetFile = File_function.GetFile(FolderName) '選択ファイルをFileオフジェクトとして登録
MsgBox "ファイル名:" & SetFile.Name & vbCrLf _
& "ファイルの作成日時:" & SetFile.DateCreated _
& vbCrLf & "ファイルのサイズ(Byte):" & SetFile.Size _
& vbCrLf & "ファイルタイプ:" & SetFile.Type
'メッセージボックスにファイル名・作成日時・ファイルサイズ・ファイルタイプを表示します。
End Sub
'
【下記のプログラムを実行準備】
① シート名を「Sheet1」
※選択するファイルを用意する。(なんでも良い)
'******** AKIRA55.COM ******* https://akira55.com/file_attributes '
'
Sub file_attributes02() '複数選択したファイルの属性を一覧表示じます。
Dim File_function As New Scripting.FileSystemObject
Dim SetFile As Scripting.File
Dim lRow, I, F As Long
Dim FolderName As String
Dim FileName As Variant
Dim ws01 As Worksheet
Set ws01 = Worksheets("Sheet1")
FileName = Application.GetOpenFilename(MultiSelect:=True)
'ダイアログボックスが表示(MultiSelect:=Trueでファイルを複数選択)
If UBound(FileName) > 0 Then '選択したファイルが0件を超える場合は実行
FolderName = File_function.GetParentFolderName(FileName(1))
'選択した最初のファイル名からフォルダーまでのルートを取得する
Else
MsgBox "作業をキャンセルされました"
Exit Sub 'プログラムを終了
End If
lRow = ws01.Cells(Rows.Count, "A").End(xlUp).Row 'A列の最終行を取得
ws01.Range("A2:F" & lRow + 1).ClearContents 'A列~F列のデータ(文字列のみ)をクリアー
F = 1 '選択ファイルの1件目を設定
For I = 2 To 1 + UBound(FileName) '選択したファイルの数を繰り返す。(最大値)
Set SetFile = File_function.GetFile(FileName(F)) 'ファイルをFileオフジェクトとして登録
ws01.Range("A" & I) = SetFile.Name 'ファイル名
ws01.Range("B" & I) = SetFile.DateCreated 'ファイルの作成日時
ws01.Range("C" & I) = SetFile.DateLastModified 'ファイルの更新日時
ws01.Range("D" & I) = SetFile.Size 'ファイルサイズ
ws01.Range("E" & I) = SetFile.Type 'ファイルの種類
ws01.Range("F" & I) = SetFile.Path 'ファイルパス
F = F + 1
'次のファイル名を指定するために+1加算する。
Next I
End Sub
【下記のプログラムを実行準備】
① シート名を「Sheet1」
※選択するフォルダー・ファイルを用意する。(なんでも良い)
'
'******** AKIRA55.COM ******* https://akira55.com/file_attributes '
'
Sub file_attributes03() '選択したフォルダー内のファイル一覧の属性を表示します。
Dim File_function As New Scripting.FileSystemObject
Dim SetFile As Scripting.File
Dim F As Object
Dim lRow, I As Long
Dim FolderName, FolderRoot As String
Dim FileName As Variant
Dim ws01 As Worksheet
Set ws01 = Worksheets("Sheet1")
With Application.FileDialog(msoFileDialogFolderPicker) 'ダイアログボックスを表示してフォルダーを選択します。
If .Show = 0 Then Exit Sub 'プログラムを終了 (フォルダーが選択されていない。もしくはキャンセル)
Set FolderName = File_function.GetFolder(.SelectedItems(1)) '選択したフォルダー名をセットします。
End With
lRow = ws01.Cells(Rows.Count, "A").End(xlUp).Row 'A列の最終行を取得
ws01.Range("A2:F" & lRow + 1).ClearContents 'A列のデータ(文字列のみ)をクリアー
I = 2
For Each F In File_function.GetFolder(FolderName).Files 'フォルダー内の全てのファイルを順番に繰り返します。
Set SetFile = File_function.GetFile(F) 'フォルダー内のファイルをひとつずつセットします。
ws01.Range("A" & I) = SetFile.Name 'ファイル名
ws01.Range("B" & I) = SetFile.DateCreated 'ファイルの作成日時
ws01.Range("C" & I) = SetFile.DateLastModified 'ファイルの更新日時
ws01.Range("D" & I) = SetFile.Size 'ファイルサイズ
ws01.Range("E" & I) = SetFile.Type 'ファイルの種類
ws01.Range("F" & I) = SetFile.Path 'ファイルパス
I = I + 1 '次の行に+1加算する。
Next F '全てのファイルが終了まで繰り返します。
End Sub
'