質問: マクロのコードを教えていただきたいです。 ファイルが3つあり、全てのファイルのD2列にコード、E2列にテキストが入力されています。 これらのコードの中でAAA1,AAA2,AAA3というコードとそれに紐づくテキストを1つのファイルに転記したいです。 テキストはAAA1の場合はx、AAA2の場合はy、AAA3の場合はzと決まっています。 また、転記先が決まっており、AAA1をB20~、テキスト(x)をC20~、AAA2とAAA3をD20~、テキスト(y,z)をE20~順に記載したいです。 有識者の方々、どうぞよろしくお願いいたします。
回答: 3つのファイルと転記先.xlsxを開いた状態で以下のマクロを実行してみてください。ちなみに3つのファイルのデータはシート1にあることを想定しています。 Private Sub 転記() Dim 転記先ファイル名 As String Dim 転記列, 転記列2, 転記行 As Integer Dim k, l As Integer '転記先の行数 Dim i As Integer '転記元の現在の行数 転記先ファイル名 = "転記先.xlsx" k = 19 '転記先記述行数 AAA1 l = 19 '転記先記述行数 AAA2、AAA3 Dim wbook As Workbook For Each wbook In Workbooks If wbook.Name <> ThisWorkbook.Name And wbook.Name <> 転記先ファイル名 Then For i = 1 To wbook.Sheets(1).Cells(Rows.Count, 4).End(xlUp).Row 転記列 = 0 転記行 = 0 Select Case wbook.Sheets(1).Cells(i, 4).Value Case "AAA1" 転記列 = 2 転記列2 = 3 文字列 = "AAA1" 文字列2 = "x" k = k + 1 転記行 = k Case "AAA2" 転記列 = 4 転記列2 = 5 文字列 = "AAA2" 文字列2 = "y" l = l + 1 転記行 = l Case "AAA3" 転記列 = 4 転記列2 = 5 文字列 = "AAA3" 文字列2 = "z" l = l + 1 転記行 = l End Select If 転記列 <> 0 Then With Workbooks(転記先ファイル名).Sheets(1) .Cells(転記行, 転記列) = 文字列 .Cells(転記行, 転記列2) = 文字列2 End With End If Next i End If Next wbook End Sub