• ベストアンサー

マクロ 貼り付け先のセルを変更するには?

エクセル2000です。 sheetAのセルC3~C10をコピーしsheetBのセルD3~10に貼り付けるマクロを使用しています。 sheetBの貼り付け先の表を変更し、セルE3~10に変更したいです。 この場合、VBAの貼り付け先のD3~10をE3~10に書き換えるしか方法はないでしょうか? 同様の貼り付け件数が多く、一つ一つ作業をするのが非常に手間で、一括で行える方法を探しています。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • m_and_dmp
  • ベストアンサー率54% (993/1828)
回答No.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と変更します。

すると、全ての回答が全文表示されます。

関連するQ&A