電子書籍の厳選無料作品が豊富!

マクロの記録にて全て同じ動作を記録するぐらいのレベルで200以上の繰り返し作業は色々調べましたが難しく解る方いらっしゃいましたら教えて下さい。
内容は
*sheet 1 E6 コピー
sheet 2 A2 貼り付け
*sheet 1 H6 コピー
sheet 2 E2 貼り付け
*sheet 1 I 6 コピー
sheet 2 C5 貼り付け
sheet 2 C29:D29 コピー
*sheet 1 L6:M6 貼り付け
この動作が一回で
*印のセルが6~200まで繰り返したいのですが教えて下さい。

質問者からの補足コメント

  • 説明不足で申し訳ありません。
    sheet 2の指定セルにsheet 1からコピーした値から色々計算された数値がsheet 2のC29とD29に反映されるので、その数値をsheet 1に値のみを貼り付けしたいのです。

    sheet 2のセルの位置は固定で
    sheet 1に関しては行方向に1づつ下方向に貼り付けしていきたいです。

      補足日時:2017/09/05 09:28

A 回答 (4件)

Sub 繰り返し()


Dim 位置 As Long
For 位置 = 6 To 200
Sheets("Sheet2").Range("A2").Value = Sheets("Sheet1").Cells(位置, 5).Value
Sheets("Sheet2").Range("E2").Value = Sheets("Sheet1").Cells(位置, 8).Value
Sheets("Sheet2").Range("C5").Value = Sheets("Sheet1").Cells(位置, 9).Value
Sheets("Sheet1").Cells(位置, 12).Value = Sheets("Sheet2").Range("C29").Value
Sheets("Sheet1").Cells(位置, 13).Value = Sheets("Sheet2").Range("D29").Value
Next
End Sub

※「Cells(位置, ○)」の「位置」は行番号、「○」は列番号です。今回は列は変更しないのであまり意味はありませんが、行のように変化する場合は、「列記号」よりも今回のように「列番号」を使った方が便利なのでこちらで覚えた方が良いです。
    • good
    • 1
この回答へのお礼

素晴らしいです。
感動いたしました。
ありがとうございます。

お礼日時:2017/09/05 10:38

こんにちは



回答ではありません。(補足のお願いです)

基本的には繰り返しの回数だけループすれば良いのですが・・・
セルをずらしながらと言うことでしょうが、Sheet1、Sheet2とも行方向に下に1セルずつずらしてゆけば良いのでしょうか?(まれにSheet2は列方向にとか、1行おきにとかありますので)

また、仮に行方向に1セルずつずらすとすると
>sheet 2 C5 貼り付け
>sheet 2 C29:D29 コピー
となっているので、C5→C199の順に貼り付ける途中でC29~を上書きして行くことになります。

・・ということは、処理の順が行を下方に処理して行くのと、下方から上方向に処理して行くので結果が異なりますし、普通はやらないと思いますが、
>*sheet 1 E6 コピー
>sheet 2 A2 貼り付け
を194回処理してから、
>*sheet 1 H6 コピー
>sheet 2 E2 貼り付け
を194回処理…
 ・・・・
といった手順で処理するのでも結果は異なることになります。
普通に上から下方に順に処理するので良いのでしょうか??

質問文でご提示のシート名には数字の前にスペースが入っていますが、スペースがあるのが正しいでしょうか?
(通常のデフォルトのシート名にはスペースが無いので)
    • good
    • 1

No.1 の補足



セル結合などが有る場合は除きますが、コピー元は全範囲を指定する必要が有るけど、貼り付け先は右上を指定すれば良いのはご存知ですよね?
    • good
    • 0

変数とかはご存知でしょうか?


プログラムの基本ですから調べて勉強された方が良いです。
「For Next 文」を使えば実現しそうです。

ご質問で「○6」の物は 200になるまで繰り返されるのはよく判るのですが、他の数字も同じ数だけ増えると言う事で良いのでしょうか?

もしそれならば、以下の事と同じだと思うのですがいかがでしょうか?
sheet 1 E6:E200 の範囲をコピー
sheet 2 A2 に貼り付け
sheet 1 H6:H200 の範囲をコピー
sheet 2 E2 に貼り付け
sheet 1 I6:I200 の範囲をコピー
sheet 2 C5 に貼り付け
sheet 2 C29:D235 の範囲をコピー
sheet 1 L6 に貼り付け
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!