まとめシートに、コンボボックスで選択した支店のシートから、各月・各項目別の金額を転記したいです。 VBAにて、コンボボックスで選択した支店名のシートから、各月ごと・各勘定科目ごとに転記しようと、下記のコード書きました。 試しに予算のみ書いたのですが、 まとめシートの各月の項目内で、1~12月の数値が順に表示されて、最終的にすべての月が同じ数値で終わるということになってしまいました。 やりたいことをまとめると以下のようになります。 配列がいまだに理解できず、詰まりました。どうかご教授ください。 <やりたいこと> 選択した支店の1月~年間累計の予算と実績の数値を千円単位でまとめシートに転記したい。 ・「まとめ」シート A3セルにコンボボックス。支店名を選択 ・「まとめ」シート A列に勘定科目(最終行は変わる) ・「支店」シート/1000と「まとめ」シートは千円単位で表示 ・「まとめ」シート 構成比のセルに「各項目/売上総利益」を%で表示 ・「検索用」シート A列にまとめシートの勘定科目の行番号、B列に「各支店」シートの勘定科目の行番号を表示 ・各支店シートは、3行目に月別項目名があり、9列目から55列が該当する月別のデータ範囲 「2022/1月予算,2022/1月,差額,2022/2月予算,2022/2月,差額,2022/3月予算,2022/3月,差額,1Q累計予算,1Q累計,差額,2022/4月予算…2022/12月予算 ,2022/12月,差額,年計予算,年計実績」 Sub ②質問用() Dim i As Long, j As Long Dim rMTM As Variant, rTNP As Variant, Dim TNP_List As Variant Dim tuki As String, tmp As Range Dim x As Long, m As Long Dim ws1 As Worksheet, ws2 As Worksheet, ws3 As Worksheet Dim s As Long, tp As String Application.ScreenUpdating = False Set ws1 = Worksheets("まとめ") Set ws2 = Worksheets("検索用") s = ws1.Range("A3") '支店名のある行番号 ws1.Range("A2").Value = ws2.Cells(s, "G").Value tp = ws2.Cells(s, "F").Value 'シート名 Set ws3 = Worksheets(tp) '該当する支店のシート ws1.Range("BZ4").Value = "年間実績" With ws2 rMTM = .Range("B1:B24") rTNP = .Range("D1:D24") TNP_List = .Range("F1:F5") End With With ws1 'まとめシートに出力 On Error Resume Next For i = 1 To UBound(rMTM) For x = 3 To 78 Step 5 '3列目に1月予算、最終項目の年間予算は78列目 For m = 9 To 54 Step 3 '各支店シートの1月予算は9列目、年間予算は54列目 .Cells(rMTM(i, 1), x).Value = ws3.Cells(rTNP(i, 1), m).Value / 1000 Next m Next x Next i For j = 1 To UBound(rMTM2) For x = 3 To 78 Step 5 For m = 9 To 54 Step 3 .Cells(rMTM2(j, 1), x).Value = ws3.Cells(rTNP2(j, 1), m).Value / 1000 _ + ws3.Cells(rTNP3(j, 1), m).Value / 1000 Next m Next x Next j End With ws1.Range("BZ4").Value = "年間累計" End Sub
Visual Basic