アプリ版:「スタンプのみでお礼する」機能のリリースについて

お世話になります。チェンジイベント初心者です。
同一BOOK内の特定のコラムのセルを選択した場合に、自動的に他のシートの特定のセルにデータを転記させたいのですが、どう書けばよいのか分かりません。添付の画像と下記マクロをご覧になって下さい。
-マクロ-
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If 1 = ActiveCell.Column Then
Worksheets("01").Cells(ActiveCell.Row, 3) = Cells(ActiveCell.Row, 1)
Worksheets("01").Cells(ActiveCell.Row, 4) = Cells(ActiveCell.Row, 2)
End If
End Sub

メインのシートは[01]です。このシートのC4を選択し、次に[02]のA列にあるセルを選択すると、[02]のA列・B列のデータがC4・D5に転記されるようにしたいのですが、画像にあります通り[02]のA5を選択してしまうと、[01]のC5・D5に転記されてしまいます。
どのようにすれば、[01]でアクティブにしておいた行の3列目、4列目に転記が行われるのでしょうか?

よろしくご指南くださいませ。

「VBA チェンジイベント 別シートにデー」の質問画像

A 回答 (3件)

ActiveCellがシート02を参照しているためです。



Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If 1 = ActiveCell.Column Then
Worksheets("01").Activate
n = ActiveCell.Row
Worksheets("02").Activate
Worksheets("01").Cells(n, 3) = Cells(ActiveCell.Row, 1)
Worksheets("01").Cells(n, 4) = Cells(ActiveCell.Row, 2)
End If
End Sub
    • good
    • 0
この回答へのお礼

さっそくのお返事ありがとうございました。
先にSheet01のセルのRowを読み込ませておくんですね。
参考になります。

お礼日時:2009/08/11 18:24

シート01とシート02の両方にマクロを設定するとよいでしょう。


シート01では次のようにします。
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If 3 = ActiveCell.Column Then
Range("G1") = ActiveCell.Row
End If
End Sub
C列で選択したときの行番号をたとえばG1セルに記録しておきます。
シート02では次のようにします。
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If 1 = ActiveCell.Column Then
n = Worksheets("Sheet1").Range("G1")
If n = "" Then Exit Sub
Worksheets("Sheet01").Cells(n, 3) = Cells(ActiveCell.Row, 1)
Worksheets("Sheet01").Cells(n, 4) = Cells(ActiveCell.Row, 2)
End If
End Sub
なお、たとえば前の操作でA5セルがアクティブセルになっている状態ですとそのままではマクロが実行されません。一旦別のセルを選択してからA5セルを選択することでマクロが実行されます。
    • good
    • 0
この回答へのお礼

なるほど、面白いですね。一旦メモをとっておくなんて、思いつきもしませんでした。
参考になりました。ありがとうございます。

お礼日時:2009/08/11 18:27

こんなのは如何?



Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If 1 = Target.Column Then
Target.Resize(1, 2).Copy
Worksheets("01").Paste
Application.CutCopyMode = False
End If
End Sub

ただのコピペです
    • good
    • 0
この回答へのお礼

シンプルですね!とっても好きです。
Resize(1, 2)・・・初めて見ました。
参考になりました。
ありがとございます。

お礼日時:2009/08/11 18:30

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています