• ベストアンサー

エクセル2000のマクロについて質問です

マクロ初心者です。 現在「セルA1の値を、別シートのセルB10に貼り付ける」という非常にシンプルな内容(実際はこれを何度も繰り返すのですが)のマクロを記録により作っています。 今困っているのは、貼り付ける元のセル(現在のA1)の位置が、仕様変更によってたびたび変わるので、そうなると今の私のスキルでは、一々マクロの記録をやり直している状態です。 一々やり直さずにすむ、何かいい方法はあるでしょうか。 これは全く憶測で考えているのですが、例えば貼り付ける元のセルに名前をつけて、その名前のセルを選択する、のようなことができるとありがたいのですが。 (コピー元のセルが別の場所に移っても、常に該当のセルを選択してもらいたい) よろしくお願い致します。

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

  • ベストアンサー
  • error123
  • ベストアンサー率21% (54/247)
回答No.1

> 例えば貼り付ける元のセルに名前をつけて、その名前のセルを選択する、のようなことができるとありがたいのですが。 まさにこれがぴったりね。 たとえば、貼り付け元のセルに「TEST」という名前を付けます。 これをSheets("Sheet2").Range("B1")に出すなら Sub TEST() Sheets("Sheet2").Range("B1").Value = Range("TEST").Value End Sub です。 貼り付け元のセル「TEST」はどこに移動してもOKです。

bari_saku
質問者

お礼

早速のご回答ありがとうございます。 現在、作業途中ですが、とくに問題なく進められています。 助かりました、感謝いたします。

その他の回答 (2)

  • matsu_jun
  • ベストアンサー率55% (146/265)
回答No.3

「設定」という名前のシートを作って、その中に、コピー元のセルとコピー先のセルを書き込んでいきます。 下の図を参考にして、A2のセルから下へどんどん入れていくことができます。  ┃ A ┃ B ┃ C ┃ ━╋━━━╋━━━╋━━━╋ 1┃ 元 │ 先 │   │ ━╋───┼───┼───┼ 2┃A1 │B10│   │ ━╋───┼───┼───┼ 3┃A2 │C10│   │ ━╋───┼───┼───┼ 4┃A3 │D10│   │ ━╋───┼───┼───┼ 5┃   │   │   │ ━╋───┼───┼───┼ 6┃   │   │   │ ━╋───┼───┼───┼ 7┃   │   │   │ ━╋───┼───┼───┼ Alt+F11でVisual Basic Editorを開いて、以下のソースを標準モジュールに貼り付けます。 Sub データ貼り付け() For i# = 2 To Worksheets("設定").Cells(65536, 1).End(xlUp).Row ActiveSheet.Range(Worksheets("設定").Cells(i, 2).Value).Value = _ ActiveSheet.Range(Worksheets("設定").Cells(i, 1).Value).Value Next i End Sub これで実行していただければ、「設定」セルに書き込んだ通りに貼り付けをしてくれますよ。 上の図では、全角文字で記入しているけど、実際のセルには半角で入力してください。

bari_saku
質問者

お礼

今回の作業は、単純に下の行にコピペするわけではないのですが、ご回答は参考にさせていただきます。 どうもありがとうございました。

  • error123
  • ベストアンサー率21% (54/247)
回答No.2

追伸 セルに名前の付け方はわかるわよね? 念のために言っておくと、セルを選択したら、左上の方にある名前ボックス(A1とか表示される部分)に直接書き込みます。

bari_saku
質問者

お礼

ご丁寧に、ありがとうございました。

関連するQ&A