質問: Cells(i, "A").Value 'セルの値を取得 Workbooks.Open Filename:="C:\Users\users\Desktop\新しいフォルダー (21)\前半.xlsm" Workbooks("前半.xlsm").Activate Workbooks("前半.xlsm").Worksheets(strSheetName).Range("A5").Copy Workbooks("請求書.xlsm").Worksheets(strSheetName).Range("A62").xlPasteValues Next End Sub ``` ここに言語名を入力 VBA ### 試したこと ここに問題に対して試したことを記載してください。 ### 補足情報(FW/ツールのバージョンなど) ここにより詳細な情報を記載してください。
回答: ``` Sub コピー() Dim i As Long Dim strSheetName As String Dim wb01 As Workbook '集計 Dim ws01 As Worksheet '集計 Dim wb02 As Workbook '前半 Set wb01 = Workbooks("請求書.xlsm") Set ws01 = Worksheets("集計") 'ワークシートの設定 Workbooks.Open Filename:="C:\Users\users\Desktop\新しいフォルダー (21)\前半.xlsm" Set wb02 = Workbooks("前半.xlsm") For i = 2 To ws01.Cells(Rows.Count, "A").End(xlUp).Row '2行目~最終データ行までループ strSheetName = ws01.Cells(i, "A").Value 'セルの値を取得 wb01.Worksheets(strSheetName).Range("A62").Value _ = wb02.Worksheets(strSheetName).Range("A5").Value Next Workbooks("前半.xlsm").Close End Sub ``` Copy、PasteValue は、代入に変更しました。 試してないけど。