VBAのIE(InternetExplorer)制御に便利なサブルーチンを紹介しています。
Function fileNameAllF(Optional pathName As String = "myPath") As Variant()
Dim fileValue() As Variant
Dim fileCnt As Integer
If sheetName = "mySheet" Then: sheetName = ActiveSheet.Name 'シート名
strArray = Split(pathName & folderList(pathName), ",")
'FileSystemObjectインスタンスを生成
Set objSFO = CreateObject("Scripting.FileSystemObject")
'指定フォルダ内のすべてのファイル数チェック
For i = LBound(strArray) To UBound(strArray)
fileCnt = fileCnt + objSFO.GetFolder(strArray(i)).Files.Count
Next i
'要素数再セット
ReDim fileValue(fileCnt - 1, 3)
r = 0
'指定フォルダ内のすべてのファイル情報を格納
For i = LBound(strArray) To UBound(strArray)
With objSFO.GetFolder(strArray(i))
For Each objFile In .Files
fileValue(r, 0) = objFile.Name 'ファイル名
fileValue(r, 1) = .Path & "\" & objFile.Name 'ファイルフルパス名
fileValue(r, 2) = .Path 'フォルダパス名
fileValue(r, 3) = .Name 'フォルダ名
r = r + 1
Next
End With
Next i
Set objSFO = Nothing
fileNameAllF = fileValue()
End Function
引数名 | データ型 | 内容 | 値の事例 | 初期値 | 省略 |
---|---|---|---|---|---|
pathName | String | 取得するフォルダパス文字列 | "C:\Users\vba-ie\Desktop\vba-ie\file\" | ● |
引数は任意項目となります。
「pathName」には、ファイル名を抽出するフォルダのパスを入力します。
初期値は実行ファイルと同じフォルダ内のパスになります。
また、こちらのフォルダ内にあるサブフォルダも対象となります。