こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

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

マクロ初心者です。

現在「セルA1の値を、別シートのセルB10に貼り付ける」という非常にシンプルな内容(実際はこれを何度も繰り返すのですが)のマクロを記録により作っています。

今困っているのは、貼り付ける元のセル(現在のA1)の位置が、仕様変更によってたびたび変わるので、そうなると今の私のスキルでは、一々マクロの記録をやり直している状態です。

一々やり直さずにすむ、何かいい方法はあるでしょうか。
これは全く憶測で考えているのですが、例えば貼り付ける元のセルに名前をつけて、その名前のセルを選択する、のようなことができるとありがたいのですが。
(コピー元のセルが別の場所に移っても、常に該当のセルを選択してもらいたい)

よろしくお願い致します。

投稿日時 - 2005-02-08 11:29:56

QNo.1208031

困ってます

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

> 例えば貼り付ける元のセルに名前をつけて、その名前のセルを選択する、のようなことができるとありがたいのですが。

まさにこれがぴったりね。
たとえば、貼り付け元のセルに「TEST」という名前を付けます。
これをSheets("Sheet2").Range("B1")に出すなら

Sub TEST()
Sheets("Sheet2").Range("B1").Value = Range("TEST").Value
End Sub

です。

貼り付け元のセル「TEST」はどこに移動してもOKです。

投稿日時 - 2005-02-08 12:32:53

お礼

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

投稿日時 - 2005-02-08 15:45:32

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.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

これで実行していただければ、「設定」セルに書き込んだ通りに貼り付けをしてくれますよ。
上の図では、全角文字で記入しているけど、実際のセルには半角で入力してください。

投稿日時 - 2005-02-08 13:25:16

お礼

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

投稿日時 - 2005-02-08 15:47:12

ANo.2

追伸

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

投稿日時 - 2005-02-08 12:35:53

お礼

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

投稿日時 - 2005-02-08 15:46:04

あなたにオススメの質問