Excel: コピー&ペーストと表作成のためのシンプルな Do ループ

Excel: コピー&ペーストと表作成のためのシンプルな Do ループ

私は、次のような単純な(と思う!)Do ループを実行したいと考えています。私の単純なプログラムは期待どおりに動作しますが、1000 回繰り返したいので、もっと簡単な方法があると思います。おそらく、何らかのループを使用するのでしょうか。Do ループか、それ以外の方法でしょうか。要するに、私は次のことを実行したいと考えています。

  1. A1の内容をコピーする
  2. B1に貼り付けます
  3. セル C1 をコピーします (B1 に作用する簡単な数式が含まれています)
  4. C1 から「値」のみを D1 にコピーします (D1 はそのような値のテーブルになります)

これを A1 から A1000 まで実行し、値 D1、D2、...、D1000 のテーブル (おそらく正方形のテーブル) を取得したいと思います。セル B1 と C1 は固定されたままです。

私のプログラムは以下の通りです:

Sub PasteSpecial_Examples()

    Range("A1").Copy Range("B1")
    Range("C1").Copy
    Range("D1").PasteSpecial Paste:=xlPasteValues

    Range("A2").Copy Range("B1")
    Range("C1").Copy
    Range("D2").PasteSpecial Paste:=xlPasteValues

    Range("A3").Copy Range("B1")
    Range("C1").Copy
    Range("D3").PasteSpecial Paste:=xlPasteValues

    Range("A4").Copy Range("B1")
    Range("C1").Copy
    Range("D4").PasteSpecial Paste:=xlPasteValues


    Application.CutCopyMode = False

End Sub

答え1

シンプルな For...Next ループが必要な場合:

Sub PasteSpecial_Examples()

  For i = 1 To 1000
    Range("A" & i).Copy Range("B1")
    Range("C1").Copy
    Range("D" & i).PasteSpecial Paste:=xlPasteValues
  Next i

  Application.CutCopyMode = False

End Sub

関連情報