アプリ版:「スタンプのみでお礼する」機能のリリースについて

エクセル2000です。

sheetAのセルC3~C10をコピーしsheetBのセルD3~10に貼り付けるマクロを使用しています。
sheetBの貼り付け先の表を変更し、セルE3~10に変更したいです。

この場合、VBAの貼り付け先のD3~10をE3~10に書き換えるしか方法はないでしょうか?
同様の貼り付け件数が多く、一つ一つ作業をするのが非常に手間で、一括で行える方法を探しています。

よろしくお願いします。

A 回答 (1件)

全容が分からないので見当違いかもしれませんが、


コピー&ペーストで実行しているならつぎのように記述されていると思います。
このモジュールのDをEに効率的に書き換えるには、編集メニューの検索と置換を使用すると良いと思います。
VBエディターの中で置換を行ってほかのマクロを書き換えてしまうといけないので、一度メモ帳にコピーしてから実行し、戻すと安心でしょう。

Sub Macro1()
Sheets("Sheet1").Select
Range("C3:C9").Select
Selection.Copy
Sheets("Sheet2").Select
Range("D3:D9").Select
ActiveSheet.Paste
End Sub


将来のことを考えると、読み込みセル/書き込みセルを変数として扱うとフレキシブルになります。つぎに例として考え方だけあげておきます。
セルを変数で扱う時は Range("A1:B1")形式はマクロで扱いにくいので、
Range(Cells(R1,C1),Cells(R2,C2)) に変更します。
この例では、
シート1のC3~C9をシート2のD3~D9へ
シート1のD3~D9をシート2のE3~E9へ
シート1のE3~E9をシート2のF3~F9へ



へコピーします。


Sub Macro2()

R11 = 3
C11 = 3
R12 = 9
C12 = 3
R21 = 3
C21 = 4
R22 = 9
C22 = 4

For I = 0 To 9
Sheets("Sheet1").Select
Range(Cells(R11, C11 + I), Cells(R12, C12 + I)).Select
Selection.Copy
Sheets("Sheet2").Select
Range(Cells(R21, C21 + I), Cells(R22, C22 + I)).Select
ActiveSheet.Paste
Next I

End Sub

コピー先セルを変更したい場合は R21, C21, R22, C22と変更します。
    • good
    • 1

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

このQ&Aを見た人はこんなQ&Aも見ています