指定ファイルに複数階層のファルダ―を作成したいと思い、以下のコードを書きました。
ですが、" fs.CreateFolder (s)"でパスが見つかりませんとのエラーが出てきてしまい、
修正箇所がわかりません。
どなたかご指摘ください。
Sub ファイル() Dim i As Long, cmax As Long, x As Long, z As Long, cnt As Long, j As Long, k As Long Dim ws1 As Worksheet Dim str As String, url As String Dim s As String, s1 As String Dim n1 As Long Dim fs As FileSystemObject Set fs = New Scripting.FileSystemObject Set ws1 = Sheets(1) cmax = ws1.Range("A65536").End(xlUp).Row cnt = ws1.Range("IV4").End(xlToLeft).Column '[1] セルB2にURLが記載されているかチェック If ws1.Range("B2").Value = "" Then MsgBox "セルB2に「作成先のフォルダURL」を入力して下さい" ws1.Range("B2").Activate Exit Sub End If url = ws1.Range("B2").Value '[2] 同じ行に複数回記入されていないことを確認 For i = 5 To cmax x = 0 For j = 0 To cnt - 2 If ws1.Cells(i, 2).Offset(0, j).Value <> "" Then x = x + 1 End If Next If x > 1 Then z = z + 1 End If Next '[3] 同じ行に複数回記入されていた場合、処理を止める If z > 0 Then MsgBox 入力情報を見直してください Exit Sub End If '[4] 階層別にフォルダを作成する For j = 0 To cnt - 2 For i = 5 To cmax If ws1.Cells(i, 2).Offset(0, j).Value <> "" Then s1 = ws1.Cells(i, 2).Offset(0, j).Value For k = 0 To j If k - j = 0 Then Exit For End If n1 = ws1.Cells(i, 2).Offset(0, j - k - 1).End(xlUp).Row s1 = ws1.Cells(i, 2).Offset(0, j - k - 1).Value & "\" & s1 Next s = url & " \" & s1 fs.CreateFolder (s) End If Next Next Set fs = Nothing End Sub
変数sの中身をコンソールなどに出力するようにして、エラーが発生した時の
値を確認してください。