patagonの日記: [コンピュータ]指定フォルダ内のファイル名一覧をExcelに書き出す VBA
指定フォルダ内のファイル名一覧をExcelに書き出す
フォルダをダイアログで選択・指定したい場合は Shellオブジェクト(Shell.Application) 等を使えばいい。
Office TANAKA - Excel VBA Tips[フォルダを選択するダイアログ]
'指定フォルダ内のファイル名一覧をExcelに書き出す
'参考
'第6回 指定フォルダ内のファイル名一覧をExcelに書き出す:ITpro
' <http://itpro.nikkeibp.co.jp/article/COLUMN/20060120/227645/>
' .sheet(1) → .ActiveSheetに変更
Sub MakeFileList2()
Application.EnableEvents = False 'イベントの禁止
Application.ScreenUpdating = False
'対象フォルダの指定
Target = "\\server-001\folder1\subfolder2"
Set FS = CreateObject("Scripting.FileSystemObject")
Set Fol = FS.GetFolder(Target)
Set Fil = Fol.Files
With ThisWorkbook.ActiveSheet
'ThisWorkbook.Sheets("Sheet1").UsedRange.Delete
'シートのクリア
Cells.ClearContents
'Clear 全てクリア
'ClearContents 数式、文字列をクリア
'ClearFormats 書式をクリア
'ClearComments コメント文をクリア
'ClearOutline アウトラインをクリア
'見出しを付ける
.Range("B2") = "ファイル名"
.Range("C2") = "ファイル種別"
.Range("D2") = "最終更新日"
.Range("E2") = "説明"
.Range("B2:E2").Interior.Color = RGB(0, 0, 0)
.Range("B2:E2").Font.Color = RGB(255, 255, 255)
.Range("B2:Es2").HorizontalAlignment = xlCenter
i = 3
For Each Fx In Fil
'ファイル名
sFile = Fx.Name
'ファイル名の書き出し
.Cells(i, 2) = sFile
'ファイル種別
sFType = Fx.Type
'最終更新日時の書き出し
.Cells(i, 3) = sFType
'最終更新日
sLMod = Fx.DateLastModified
.Cells(i, 4) = sLMod
i = i + 1
Next
End With
Application.EnableEvents = True
Application.ScreenUpdating = True '画面再描画再開
End Sub
[コンピュータ]指定フォルダ内のファイル名一覧をExcelに書き出す VBA More ログイン