- ベストアンサー
エクセル2000のマクロについて質問です
マクロ初心者です。 現在「セルA1の値を、別シートのセルB10に貼り付ける」という非常にシンプルな内容(実際はこれを何度も繰り返すのですが)のマクロを記録により作っています。 今困っているのは、貼り付ける元のセル(現在のA1)の位置が、仕様変更によってたびたび変わるので、そうなると今の私のスキルでは、一々マクロの記録をやり直している状態です。 一々やり直さずにすむ、何かいい方法はあるでしょうか。 これは全く憶測で考えているのですが、例えば貼り付ける元のセルに名前をつけて、その名前のセルを選択する、のようなことができるとありがたいのですが。 (コピー元のセルが別の場所に移っても、常に該当のセルを選択してもらいたい) よろしくお願い致します。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
> 例えば貼り付ける元のセルに名前をつけて、その名前のセルを選択する、のようなことができるとありがたいのですが。 まさにこれがぴったりね。 たとえば、貼り付け元のセルに「TEST」という名前を付けます。 これをSheets("Sheet2").Range("B1")に出すなら Sub TEST() Sheets("Sheet2").Range("B1").Value = Range("TEST").Value End Sub です。 貼り付け元のセル「TEST」はどこに移動してもOKです。
その他の回答 (2)
- matsu_jun
- ベストアンサー率55% (146/265)
「設定」という名前のシートを作って、その中に、コピー元のセルとコピー先のセルを書き込んでいきます。 下の図を参考にして、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 これで実行していただければ、「設定」セルに書き込んだ通りに貼り付けをしてくれますよ。 上の図では、全角文字で記入しているけど、実際のセルには半角で入力してください。
お礼
今回の作業は、単純に下の行にコピペするわけではないのですが、ご回答は参考にさせていただきます。 どうもありがとうございました。
- error123
- ベストアンサー率21% (54/247)
追伸 セルに名前の付け方はわかるわよね? 念のために言っておくと、セルを選択したら、左上の方にある名前ボックス(A1とか表示される部分)に直接書き込みます。
お礼
ご丁寧に、ありがとうございました。
お礼
早速のご回答ありがとうございます。 現在、作業途中ですが、とくに問題なく進められています。 助かりました、感謝いたします。