• 締切済み

エクセル マクロ 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

みんなの回答

  • dogs_cats
  • ベストアンサー率38% (278/717)
回答No.2

繰り返しにする必要は無いぐらいですが、一例です。 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

matban
質問者

お礼

詳しく解説していただき、ありがとうございました。 参考にもう少し勉強します。

  • krrkr
  • ベストアンサー率61% (237/388)
回答No.1

こんにちは。エクセルの専用カテゴリーで質問したほうが、回答が得られやすいかもしれません。 http://okwave.jp/c1035.html