質問: Excelに関する質問です。 OSは7、ExcelのVerは2010です。 マクロかVBAに詳しい方、ご教示下さい。 sheet2のC列・D列の5行目から8181行目まで数字が入っています。 C5・D5の数字をコピーしてsheet1のB4・B5セルに、行列の入れ替えと値で貼り付ける。 sheet1のE48の数字をコピー(E48には関数が入っている)して、sheet2のG5(コピーしたCD列と同じ行のG列)に 値で貼り付ける。 ここまでが一連の動作です。 つぎはsheet2のC6・D6をコピーしてsheet1のB4・B5セルに、行列の入れ替えと値で貼り付ける。 sheet1のE48の数字をコピー(E48には関数が入っている)して、sheet2のG6(コピーしたCD列と同じ行のG列)に 値で貼り付ける。 この作業を8181行目まで繰り返したいです。 またsheet2のC・D列のデータは今後増えることがあります。 どの様なコードにすれば良いでしょうか。 回答よろしくお願い致します。
回答: 質問内容から察するにsheet1の計算では、 B4,B5を使っているということでよろしいでしょうか? ``` With ThisWorkbook.Worksheets("sheet2") Dim lastRow as Long lastRow = .Range("C5").End(xlDown).Row Dim i as integer For i = 5 to lastRow dim val as Variant .Range("B4").Value = .Range("C" & i).Value .Range("B5").Value = .Range("D" & i).Value val = (sheet1の計算をマクロ内で行う) .Range("G" & i).Value = val Next i end With ``` ※上記のコードは、実行するたびに5行目から再計算されます。