• ベストアンサー

イベントマクロでコピー

ダブルクリックイベントでシート1のデータをシート2にコピーです。シート1には、A列とB列にデータが有ります。 シート2の C3,C5,C8,C10,・・・・と D2,D4,C7,D9,・・・・とコピー先が有ります。シート1のA列の任意の行をダブルクリックでC3にコピー、次、シート1のB列の任意の行をダブルクリックでD2にコピー。次、シート1のA列の任意の行をダブルクリックでC5にコピー、次、シート1のB列の任意の行をダブルクリックでD4にコピー、とするにはどのように記述したら良いでしょうか。よろしくお願いします。

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

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.1

この質問になぜ回答が付かないのでしょう。 質問の表現が判りにくいと思われたのでは。 >対象のシート シート1のデータをシート2にコピーです >コピー元 シート1には、A列とB列にデータが有ります >シート1のA列の任意の行をダブルクリックでC3にコピー A列のDクリック=>C列にコピー B列のDクリック=>D列にコピー は判ります。 >A列の任意の行をダブルクリックでC3・・ C列に直前に貼り付けたセルの直下のセルに、A列をDクリックした順序で貼り付けたいのかな。 C列の最終行がその都度取れるので、それを捉えてその直下セルにDクリックしたセルの値をセットすればよいらしい。 ーー 例データ A,B列が原データ A列  Bt列   C列   D列 a x a y b y c v c z f z d u u e v f ーー Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) 'MsgBox Target.Column Select Case Target.Column Case 1 d1 = Range("C100").End(xlUp).Row MsgBox d1 Cells(d1 + 1, "C") = Target Case 2 d1 = Range("D100").End(xlUp).Row Cells(d1 + 1, "D") = Target End Select End Sub MSGBOXは確認用 ("D100")としたのは、データ行は100行以下と仮定。 ーーー 上記はA列をa->c->f  とDクリックした例。

hoshi7777
質問者

お礼

ありがとうごさいました。おかげさまで解決しました。

hoshi7777
質問者

補足

ありがとうございます。質問が分かりにくくすみません。 質問の中のD2,D4,C7,D9,・・・のC7はD7の間違いです。 たとえば、シート1のA列のコピー先はシート2のC3,C5,C8,C10,・・・と決まっています。そのためシート1のA列の任意の行をDクリックしたらシート2のC3にコピーされ、次、シート1のA列の任意の行をDクリックしたらシート2のC5にコピー(C3には既にコピーされているので)されるように進みます。シート1のB列のデータもD2,D4,D7,D9,・・・と進むようにしたいです。よろしくお願いします。