VBAのIE(InternetExplorer)制御に便利なサブルーチンを紹介しています。
Function folderList(Optional pathName As String = "myPath", _
Optional folderValue As String) As String
If pathName = "myPath" Then: pathName = ActiveWorkbook.Path 'フォルダパス
'FileSystemObjectインスタンスを生成
Set objSFO = CreateObject("Scripting.FileSystemObject")
'指定フォルダのサブフォルダ内のファイル情報取得
For Each objSubFolder In objSFO.GetFolder(pathName).subfolders
folderValue = folderValue & "," & objSubFolder.Path
Call folderList(objSubFolder.Path, folderValue) '再帰呼び出し
Next
folderList = folderValue
End Function
引数名 | データ型 | 内容 | 値の事例 | 初期値 | 省略 |
---|---|---|---|---|---|
引数名 | データ型 | 内容 | 値の事例 | 初期値 | 省略 |
pathName | String | 取得するフォルダパス文字列 | "C:\Users\vba-ie\Desktop\vba-ie\file\" | "myPath" | ● |
folderValue | String | サブフォルダ情報文字列 | "C:\Users\vba-ie\Desktop\vba-ie\file,C:\Users\vba-ie\Desktop\vba-ie\file2" | ● |
引数すべてが任意項目となります。
「pathName」には、ファイル名を抽出するフォルダのパスを入力します。
初期値は実行ファイルと同じフォルダ内のパスになります。
「folderValue」には、サブフォルダを含んだフォルダパス文字列が結合された文字列で取得データですので特に指定する必要はありません。
このサブルーチンは、「fileNameAll」「fileNameAllF」サブルーチンに利用されるサブルーチンで指定したフォルダ内のすべてのフォルダ情報を取得しています。