- 締切済み
エクセル マクロ for next 繰り返し
マクロは初心者です。 以下のコピーペーストを for ~ next で3回繰り返すコードを書くには? 変数 処理 回数指定 次に 「データ範囲の指定とコピー貼り付け」になります。 ご教示願えれば幸甚に存じます。 ◎同じ処理を二回例示します。 Range("D2").Select Windows("新規_1502.csv").Activate Range("C2:F" & 最終行).Select Selection.Copy Windows("sinki 1502_新規.xlsm").Activate ActiveSheet.Paste ActiveSheet.Paste Range("K2").Select Windows("新規_1502.csv").Activate Range("G2:J" & 最終行).Select Selection.Copy Windows("sinki 1502_新規.xlsm").Activate ActiveSheet.Paste ActiveSheet.Paste
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- dogs_cats
- ベストアンサー率38% (278/717)
繰り返しにする必要は無いぐらいですが、一例です。 CSVファイルとコピー先エクセルは既に開いている状態であると仮定しています。 エクセルファイルへのコピーはシート1のA列から貼付けするようにしてあります。 (セルペースト先の指示が質問内に無いため) コピー、ペーストは処理が遅いので、今回は値だけ貼り付けで良いのでvalueを利用しています。 セル範囲の指定はcells()とresize()で指定 cells(行番号,列番号) resize(行,列) 指定セルから何行まで、何列までの列を指定 VBA値だけコピー value http://www.moug.net/tech/exvba/0050145.html resize含むVBAの説明 http://www.eurus.dti.ne.jp/~yoneyama/Excel/vba/vba_cell.html Sub test() Dim i As Integer Dim C_Col, P_Col As Integer 'C_colコピー元列番号、P_Colコピー先列番号 Dim 最終行 As Long 最終行 = Workbooks("新規_1502").Sheets("新規_1502").Cells(Rows.Count, 1).End(xlUp).Row For i = 1 To 2 If i = 1 Then C_Col = 3 '3列目 C列 P_Col = 1 '1列目 A列 ElseIf i = 2 Then C_Col = 7 '7列目 G列 P_Col = 4 '4列目 D列 End If Workbooks("sinki 1502_新規").Worksheets("sheet1").Cells(1, P_Col).Resize(最終行, 3).Value = Workbooks("新規_1502").Sheets("新規_1502").Cells(1, C_Col).Resize(最終行, 3).Value Next End Sub
- krrkr
- ベストアンサー率61% (237/388)
こんにちは。エクセルの専用カテゴリーで質問したほうが、回答が得られやすいかもしれません。 http://okwave.jp/c1035.html
お礼
詳しく解説していただき、ありがとうございました。 参考にもう少し勉強します。