• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:マクロ教えてください(繰り返しの方法))

マクロの繰り返し方法を教えてください

このQ&Aのポイント
  • 超初心者のため、マクロやVBAについて詳しく知りたいです。
  • 現在、同じ処理を何回も繰り返す必要がありますが、手間がかかっています。
  • 2行目の指定範囲を変える方法や、下から3行目の指定範囲を変える方法などを教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • moon00
  • ベストアンサー率44% (315/712)
回答No.2

失礼しました。 Range(Cells(r, c)).Select 'C列の指定した行 →Cells(r, c).Select 'C列の指定した行 に Range(Cells(r, c + 1)).Select 'D列(C列の隣)の指定した行 →Cells(r, c + 1).Select 'D列(C列の隣)の指定した行 に変更してみてください。 「End Sub が必要です」は、コピー時に落ちたのかもしれません。

gucchi-you
質問者

お礼

できました!!!ありがとうございます。 今まで長いプロシージャで書いていたので大変でした。もっと早く聞けばよかった。。。 (^_~)

その他の回答 (1)

  • moon00
  • ベストアンサー率44% (315/712)
回答No.1

上のコードで -------------------------- Sheets("optimizer").Select Range("C7").Select Selection.Copy Range("E6").Select ActiveSheet.Paste SolverOk SetCell:="$F$34", MaxMinVal:=1, ValueOf:="0", ByChange:="$F$28:$O$28" SolverSolve Userfinish:=True Range("F28:Q28").Select Selection.Copy Sheets("table").Select Range("D7").Select Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False ----------------------------- この部分で 2行目の「C7」11行目の「D7」を それぞれ順番にC8,C9, C10, C11・・・・ D8,D9, D10, D11・・・と変化する、ということでしょうか。 ---------------------------------------------- Sub kurikaesi() Dim r As Integer Dim c As Integer c = 3 'C列 For r = 8 To 15 '繰り返す行番号を指定 Sheets("optimizer").Select Range(Cells(r, c)).Select 'C列の指定した行 Selection.Copy Range("E6").Select ActiveSheet.Paste SolverOk SetCell:="$F$34", MaxMinVal:=1, ValueOf:="0", ByChange:="$F$28:$O$28" SolverSolve Userfinish:=True Range("F28:Q28").Select Selection.Copy Sheets("table").Select Range(Cells(r, c + 1)).Select 'D列(C列の隣)の指定した行 Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False Next End Sub --------------------------------------------- C8~C15、D8~D15まで同じことを繰り返します。

gucchi-you
質問者

補足

ありがとうございます。貼り付けてやってみましたが、「End Sub が必要です」と出て、Sub kurikaesi()の前に挿入しました。すると今度は「Range メソッドが失敗しました。Globalオブジェクト」とメッセージが出てデバックを押すと「Range(Cells(r, c)).Select 'C列の指定した行」の部分にハイライトがかかりました。 やり方に間違いがあったのでしょうか?宜しくお願いいたします。