フォルダ内のファイル一覧の作成
A2から下に指定したフォルダ内にあるファイル名やフォルダ名を表示させます。B2にはパス、C3には拡張子、D4には属性を記入し(パス以外は空欄でも大丈夫です)ボタンを押します。
---------------------------------------------------------------------------------------
Private Sub CommandButton1_Click()
Dim path As String
Dim FileType As String
Dim File As String
Dim FileAttribute As VbFileAttribute
'フォルダのパス
path = Trim(Cells(2, 2)) & "\"
'属性の設定 セルのD2に対象の属性を書いておく。何もなければ標準ファイルになる
FileAttribute = GetFileAttribute(Trim(Cells(2, 4)))
'フォルダ名の表示以外は拡張子を設定
If FileAttribute <> vbDirectory Then
FileType = "*"
'拡張子がない場合はファイルすべてが対象 セルはC2
If Trim(Cells(2, 3)) <> "" Then
FileType = FileType & "." & Trim(Cells(2, 3))
End If
End If
'表示するファイル名を取得
File = Dir(path & FileType, FileAttribute)
Dim i As Integer
i = 2
'ファイル名一覧を作成
Do While File <> ""
'上の階層のフォルダは非表示
If File <> ".." And File <> "." Then
'フォルダの表示を選択した場合、ファイル名は表示しない
If InStr(File, ".") <> 0 And FileAttribute = vbDirectory Then
Else
'A2から下に一覧を表示
Cells(i, 1).Value = File
i = i + 1
End If
End If
File = Dir()
Loop
MsgBox ("作成完了!!")
End Sub
Private Function GetFileAttribute(FileAttribute As String) As VbFileAttribute
'属性の設定
Select Case FileAttribute
Case "標準ファイル"
GetFileAttribute = vbNormal
Case "読み取り専用"
GetFileAttribute = vbReadOnly
Case "隠しファイル"
GetFileAttribute = vbHidden
Case "システムファイル"
GetFileAttribute = vbSystem
Case "ボリュームラベル"
GetFileAttribute = vbVolume
Case "フォルダ"
GetFileAttribute = vbDirectory
Case Else
GetFileAttribute = vbNormal
End Select
End Function
---------------------------------------------------------------------------------------
例