私は、次のような単純な(と思う!)Do ループを実行したいと考えています。私の単純なプログラムは期待どおりに動作しますが、1000 回繰り返したいので、もっと簡単な方法があると思います。おそらく、何らかのループを使用するのでしょうか。Do ループか、それ以外の方法でしょうか。要するに、私は次のことを実行したいと考えています。
- A1の内容をコピーする
- B1に貼り付けます
- セル C1 をコピーします (B1 に作用する簡単な数式が含まれています)
- 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