Function SearchFolder(main As Scripting.Folder)
'------------------------------
' 再帰処理しない時のプログラム例
'------------------------------
Dim sub1 As Scripting.Folder, sub2 As Scripting.Folder, sub3 As Scripting.Folder
Call GetFolderInfo(main, 1)
For Each sub1 In TargetFolder.SubFolders
Call SearchFolder(sub1, 2)
For Each sub2 In sub1.SubFolders
Call SearchFolder(sub2, 3)
For Each sub3 In sub2.SubFolders
Call SearchFolder(sub3, 4)
Next
Next
Next
End Function
'==============================
' 無限ループになるプログラム
'==============================
Sub sample()
Dim i As Long
i = 1
Call AdditionFunc(i)
End Sub
'-------------------------------
Function AdditionFunc(i As Long)
Debug.Print i
Call AdditionFunc(i + 1)
End Function
'==============================
' 無限ループを回避したプログラム
'==============================
Sub sample()
Dim i As Long
i = 1
Call AdditionFunc(i)
End Sub
'------------------------------
Function AdditionFunc(i As Long)
Debug.Print i
'---10未満の時だけ再帰処理する
If i < 10 Then
AdditionFunc = AdditionFunc(i + 1)
End If
End Function
コメント