指定のディレクトリ内のディレクトリにエクセルファイル(ワイルドカード *.*で判別しています。)が有る場合にエクセルのシート名一覧を入力するプロシージャを作成しました。
ところが、一つのファイルに複数のブックが有る場合(異なる原因かもしれませんが)「Ins=Dir」の部分で「プロシージャ呼び出し、または因数が不正です。」とエラーが表示され止まってしまします。
Sub 更新() Dim Path As String Dim fso As Object Dim Ins As String 'ジャンルフォルダの有無確認用 Dim Instag As String 'インデックスデータが有った場合のタグ Dim Inspath As String '格納フォルダの有無確認用 Dim cate As String Dim zyan As String Dim book As String Dim sheet As String Dim strag As String Dim Writ As String IROW = 11 Path = ThisWorkbook.Path & "\" & "全データ" Set fso = CreateObject("Scripting.filesystemobject") For Each CA In fso.Getfolder(Path).Subfolders cate = fso.Getfolder(CA).Name Ins = Dir(Path & "\" & cate & "\", vbNomal + vbDirectory) Do While Ins <> "" If Ins = "." Then Ins = Dir() Ins = Dir() End If 'If InStr(Ins, ".") > 0 Then 'エクセルデータ有る場合 If Dir(Path & "\" & cate & "\" & "*.*") <> "" Then Instag = "ジャンル無し" zyan = "-" Writ = Dir(Path & "\" & cate & "*.*") Do While Writ <> "" '''''''''エクセルデータ全て書き出し Call 書き込み.入力(Path & "\" & cate & "\", Writ, cate, zyan) Writ = Dir() Loop Exit Do Else zyan = Ins If Dir(Path & "\" & cate & "\" & zyan & "*.*") <> "" Then 'ここにジャンル有った時の処理(エクセル無いとき) Writ = Dir(Path & "\" & cate & "\" & zyan & "*.*") Do While Writ <> "" '''''''''エクセルデータ全て書き出し Call 書き込み.入力(Path & "\" & cate & "\" & zyan & "\", Writ, cate, zyan) Writ = Dir() Loop End If Ins = Dir()’’’’’’’’ここです!! End If Loop Instag = "" Next CA End Sub ``` 該当部位に「ここです!!」と入力させていだだきました。 当プロシージャ内のプロシージャ「書き込み.入力」は以下です。 ```ここに言語を入力 Public IROW As Long Sub 入力(Path As String, Ins As String, cate As String, zyan As String) Workbooks.Open Path & Ins mySheetCut = Workbooks(Ins).Sheets.Count For i = 1 To mySheetCut Workbooks(Ins).Activate mysheetName = Sheets(i).Name With Workbooks("新規案内.xlsm").Worksheets("管理ページ") .Activate .Range(Cells(IROW, 1), Cells(IROW, 1)) = cate .Range(Cells(IROW, 2), Cells(IROW, 2)) = zyan .Range(Cells(IROW, 3), Cells(IROW, 3)) = Ins .Range(Cells(IROW, 4), Cells(IROW, 4)) = mysheetName End With IROW = IROW + 1 Next i Workbooks(Ins).Close End Sub
今まで、まったく同じこと(複数のブックのシート一覧作成)は経験が有りませんが、「Dir」については何度も使ったことが在るので、なぜこんな事になったのか分からず困惑しています。
自分の知らない規則なども有るのかと思い質問致しました。
よろしくお願いします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/02/18 13:09