- ベストアンサー
エクセルVBA繰り返しコピー貼り付け
- エクセルVBAを使用して、繰り返しコピー貼り付けを行いたい場合は、Offset関数を活用することができます。
- 具体的な手順は以下の通りです。まず、Sheet1を選択し、A1:C1の範囲をコピーします。次に、Sheet2を選択し、D1のセルに貼り付けます。G1のセルをコピーし、再度Sheet1を選択し、D1のセルに貼り付けます。A2:C2の範囲をコピーし、再度Sheet2を選択し、D1のセルに貼り付けます。この手順を繰り返し、必要な範囲まで続けます。
- これにより、Sheet1のA1:C1以下の範囲にあるデータを、Sheet2のD1以下の範囲に繰り返し貼り付けることができます。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
Offsetはこのような処理では、一般的ではないと思います Sub test() Dim i As Long For i = 1 To 1000 Sheets("Sheet1").Select Range(Cells(i, 1), Cells(i, 3)).Select Selection.Copy Sheets("Sheet2").Select Range("D1").Select ActiveSheet.Paste Range("G1").Select Application.CutCopyMode = False Selection.Copy Sheets("Sheet1").Select Cells(i, 4).Select ActiveSheet.Paste Next i End Sub
その他の回答 (2)
- n-jun
- ベストアンサー率33% (959/2873)
コードもですが、やりたい事もレイアウト等を用いて提示された方が伝わるかと。
お礼
以後、気をつけるように致します。 ありがとうございます。
- 某HN クロメート(Chromate)(@CoalTar)
- ベストアンサー率40% (705/1742)
>Range("G1").Select は貼り付けたセル3つの数字の組み合わせで >公式に使う計算期間がまちまちですので公式を張り付けたり出来ません。 公式って何ですか? 解の公式のようなものでしょうか? >Range("D1").Select に貼り付けてA1:C1以下1000までの結果を >評価出来るようにしたいのですが! 評価ってなんでしょう? 成績をつけるのでしょうか? そのまま、1000行までマクロを実行させるなら Dim n As Integer For n = 1 To 1000 Sheets("Sheet1").Select Range("A" & n & ":C" & n).Select Selection.Copy Sheets("Sheet2").Select Range("D" & n).Select ActiveSheet.Paste Range("G" & n).Select Application.CutCopyMode = False Selection.Copy Sheets("Sheet1").Select Range("D" & n).Select ActiveSheet.Paste Next n でしょうけど、何をしたいのかさっぱりわかりません。 (もちろん、こんなマクロは実行させないと思います)
お礼
ありがとうございました。 参考にさせていただきました。
お礼
ありがとうございました。 目的が達成されました、説明不足の部分をご推察いただき ご理解の上、完璧な回答に感謝いたします。 これで、過去のデータ検証が1時間で出来るようになりました。 本当にありがとうございました。