懸念(誰か教えてください)
Excel Vba にて、再起って使ってもいいの?笑
したり顔で「32bit版だとリソース不足になりやすい」とか何とか言われたことが汗
VBAのエラーは処理しづらい汗
'
' 使い方
' 以下の Test01 を標準モジュール内に記述、イミディエイトより直接起動する。
'
Public Sub Test01()
Dim wPaths$()
Call createFilelist(Environ("USERPROFILE"), wPaths)
Dim i&
For i = LBound(wPaths) To UBound(wPaths)
ThisWorkbook.Sheets("Sheet1").Cells(i + 1, 1) = wPaths(i)
Next
End Sub
'
' サブフォルダ内のファイル一覧を作成する
'
Public Sub createFilelist(ByRef argSearchPath$, ByRef argFileList$())
Dim FSO As Object
Dim wSubFolder As Object
Set FSO = CreateObject("Scripting.FileSystemObject")
On Error GoTo End_Of_createFilelist
For Each wSubFolder In FSO.GetFolder(argSearchPath).SubFolders
Call createFilelist(wSubFolder.Path, argFileList$)
Next
Dim wFile As Object
For Each wFile In FSO.GetFolder(argSearchPath).Files
Call extendArray(argFileList, wFile.Path)
Next
Set FSO = Nothing
End_Of_createFilelist:
On Error GoTo 0
End Sub
'
' 配列項目を拡張し、第2引数(Option)を追加する
Public Sub extendArray(ByRef list As Variant, Optional addItem = Null)
Dim i&
On Error Resume Next
i = UBound(list)
If Err.Number = 0 Then
ReDim Preserve list(UBound(list) + 1)
Else
ReDim Preserve list(0)
End If
On Error GoTo 0
If IsNull(addItem) = False Then
If IsObject(addItem) = True Then
Set list(UBound(list)) = addItem
Else
list(UBound(list)) = addItem
End If
End If
End Sub