コメントありがとうございます! ↓こちらのVBAコードの「For Each B In FSO.GetFolder(A).SubFolders」でエラーが発生したということですね(^^) Sub TEST2() Dim FSO Set FSO = CreateObject("Scripting.FileSystemObject") Dim A, B A = "C:\Users\User\Desktop\DATA" 'フォルダ内のサブフォルダをループ For Each B In FSO.GetFolder(A).SubFolders Debug.Print B 'サブフォルダのパスを取得 Next End Sub 可能性としてあるのは、次の2点になります。 ①フォルダパス「A」と同じフォルダが保存されていなくて、フォルダを見つけられていないことによるエラーの可能性があります。 ②「Set FSO = CreateObject("Scripting.FileSystemObject")」の設定をしていないため、「FSO」の部分でエラーになった可能性があります。 ■対応策 ①の場合は、サブフォルダを探したいフォルダの、フォルダパスを、「A」の変数に入力することで解決できるかと思います。 ②の場合は、「Set FSO = CreateObject("Scripting.FileSystemObject")」の設定をすることで、解決するかと思います。 参考になればと思います(^^)
再帰処理と、For Each時の動きについてはこの動画が一番わかりやすかった。
納品作業のためにこの動画を探してました
ありがとうございます
ほんとに良い動画!
ありがとうございます!
励みになります(^^)
何時も素晴らしい動画、助かってます!
今回のサブフォルダのリスト化のところで、「for each b in fso.getfolder(a).subfolders」がデバックとなり、黄色くなりましたが、どんな理由でしょうか?
コメントありがとうございます!
↓こちらのVBAコードの「For Each B In FSO.GetFolder(A).SubFolders」でエラーが発生したということですね(^^)
Sub TEST2()
Dim FSO
Set FSO = CreateObject("Scripting.FileSystemObject")
Dim A, B
A = "C:\Users\User\Desktop\DATA"
'フォルダ内のサブフォルダをループ
For Each B In FSO.GetFolder(A).SubFolders
Debug.Print B 'サブフォルダのパスを取得
Next
End Sub
可能性としてあるのは、次の2点になります。
①フォルダパス「A」と同じフォルダが保存されていなくて、フォルダを見つけられていないことによるエラーの可能性があります。
②「Set FSO = CreateObject("Scripting.FileSystemObject")」の設定をしていないため、「FSO」の部分でエラーになった可能性があります。
■対応策
①の場合は、サブフォルダを探したいフォルダの、フォルダパスを、「A」の変数に入力することで解決できるかと思います。
②の場合は、「Set FSO = CreateObject("Scripting.FileSystemObject")」の設定をすることで、解決するかと思います。
参考になればと思います(^^)
こんばんは。これは、NASの共有フォルダでも実行することは、可能でしょうか?
コメントありがとうございます!
FileSystemObjectを使えば、NASの共有フォルダでも実行可能です。