質問: 条件 フォルダー内にあるブックを一つのシートにまとめる 抽出する箇所 B4とE4の行 A行の最終行が入力されているところまで抽出 マクロを実行したシートに張り付ける B行はb行にE行はc行に a行には抽出したブックのファイル名を反映させる ファイル形式はいらない ほかのブックにもこの操作を繰り返す こんな感じのマクロを組んでほしいんですがどなたかお願いします。。。
回答: 書いておくべきした。xls を指定するとxls*を指定したのと御何になります。自分自身を開こうとしてエラーになります。 手っ取り早い解決方法は、マクロを入れるフォルダと処理するフォルダを別にします。 また、バグっていたので直しました。 画像の様に、B1に処理するフォルダをフルパスで入れて下さい。 Option Explicit ' Sub Macro1() Dim Book As Variant Dim I As Worksheet Dim ROut As Long Dim RInE As Long Dim REnd As Long Dim Inst As Integer ' Book = Dir([B1] & "\*.xls*") ROut = 4 Application.ScreenUpdating = False Range("A4:C" & Rows.Count).ClearContents ' Do While Book > "" Set Book = Workbooks.Open([B1] & "\" & Book, False, True) Set I = ActiveSheet RInE = I.Cells(Rows.Count, "A").End(xlUp).Row ThisWorkbook.Activate Inst = InStr(Book.Name, ".") REnd = ROut + RInE - 4 Range("A" & ROut, "A" & REnd) = Left(Book.Name, Inst - 1) Range("B" & ROut, "B" & REnd) = I.Range("B4:B" & RInE).Value Range("C" & ROut, "C" & REnd) = I.Range("E4:E" & RInE).Value Book.Close False ROut = REnd + 2 Book = Dir Loop End Sub