一定のセルが選択されたときにそのセルの値をコピーするには?

Question 85.3 Previous Next
シート1にあるデータ (E1~E30 と G1~G30) のデータを A1にコピーしたいのですが、
選択したセル (
E8) を選んだときは E8だけを A1に、
また、
G15をクリックしたときには G15のデータを A1にコピーする というマクロ? を教えてください。
Answer   Copyright (C) 2007.11.5 永井善王
E8 とか G15 というのは例示で、E1~E30 と G1~G30 の中のどれかのセルが選択されたらということで良いですね。

例えば左図の場合、E8セルがクリックされたので E8セルに入っている値の "E8" が A1セルへ コピーされました。
これがもし、G1セルがクリックされたなら、G1セルに入っている値の "G1" が A1セルへ コピーされることになります。

ユーザーがセルを選択する場合は、マウスまたはポインタデバイスでセルをクリックするか、矢印キーを操作して行います。
すると、Worksheet_SelectionChangeイベントが発生するので、そのイベントプロシージャにマクロを作成しておけば、必要な処理を行わせることが可能になります。

下記マクロを Sheet1のコード画面 (右図参照) で作成し、試してみてください。

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    行 = Target.Row
    列 = Target.Column
    If (列 = 5 Or 列 = 7) And 行 <= 30 Then
        Range("A1").Value = Range(Target.Address).Value
    End If
End Sub

 

Excel VBA Macro