マクロで特定のフォルダにあるすべてファイルのセル”A2:B2”をコピーして、
指定したファイルに自動転記したいです。
下記コードを作成して、実行してみたところ、動作はしますが
すべてのファイルを実行するようなループ処理が働きません。
テストした際は、特定フォルダに3つのファイルを格納しましたが、
1つのファイルのみの”A2:B2”がコピペされているようでした。
当方初心者で原因がどうしてもわからないので、教えていただけると幸いです。
ーーーーーーー以下書いたコード
VBA
コード
Sub 一括取込() Dim folderPath As String Dim filePath As String With Application.FileDialog(msoFileDialogFolderPicker) .Title = "取込場所の選択" 'タイトルの指定 .InitialFileName = "" '初期表示フォルダの指定 If .Show = True Then 'ダイアログを表示して戻り値を判定 folderPath = .SelectedItems(1) 'フォルダのパスを取得 Else Exit Sub End If End With With Application.FileDialog(msoFileDialogFilePicker) .Title = "転記先の選択" 'タイトルの指定 .InitialFileName = "" '初期表示フォルダの指定 If .Show = True Then 'ダイアログを表示して戻り値を判定 filePath = .SelectedItems(1) 'ファイルのパスを取得 Else Exit Sub End If End With Dim myPath As String, myBook As String, last As Integer, i As Long Dim wb1 As Workbook, wb2 As Workbook Dim ws1 As Worksheet, ws2 As Worksheet myPath = folderPath myBook = Dir(myPath & "\*.xlsx") 'ワイルドカード(*)を使用し、xlsx拡張子のファイルをすべて Set wb1 = Workbooks.Open(filePath) Set ws1 = wb1.Sheets("Sheet1") Application.ScreenUpdating = False 'ちらつき防止 filePath = Dir(filePath) Workbooks.Open filePath Do While myBook <> "" Set wb2 = Workbooks.Open(myPath & "\" & myBook) Set ws2 = wb2.Sheets("Sheet1") ws2.Range("A2:E2").Copy last = ws1.Cells(ws1.Rows.Count, "A").End(xlUp).Offset(1).Row ws1.Range("A" & last).PasteSpecial Paste:=xlPasteValues ’コピーしたファイルを最終行の下にペースト Set ws2 = Nothing Set wb2 = Nothing myBook = Dir() Loop Application.ScreenUpdating = True 'ちらつき防止 wb1.Save Set ws1 = Nothing Set wb1 = Nothing End Sub
回答1件
あなたの回答
tips
プレビュー