- ベストアンサー
マクロでコピーです
三つの記述を教えてください。 1、A列に氏名、B列に住所が有ります。 C列には氏名、住所をコピーすべきものを表す1が表示されています。 コピー先はD列氏名、E列住所です。 このD列、E列には上の方から順次詰めてコピーされるようにします。 これで、A列氏名をダブルクリックしたら、その氏名、住所が共にD列、E列にコピーされる。 2、C列に立っている1をダブルクリックで上記のようにするには。 3、イベントではなく、C列1を基準として上記のようにするには。 以上、教えて下さいますようよろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
1、2はワークシートのダブルクリックイベントを利用して可能です。 下のコードのIf以下の条件式の前半が1の条件に、後半が2の条件に該当しますので、片方の条件のみの時は一方を消せばよいです。 例では、どちらの条件(A列のクリックでも、C列のクリックでも)でもD、E列にコピーされます。 クリックの位置のチェックは行っていますが、重複などのチェックは行っていません。 3は、C列で1のあるものを全てD、E列に書き写すという意味でしょうか? その場合は、C列をループで探して値が1の時だけコピーをすれば良いので、「ループ」が違うだけで後は同様ですね。 これは、応用編ということで、チャレンジしてみてください。 ----サンプル----- Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) Dim rt, r rt = Target.Row r = Range("D65536").End(xlUp).Row + 1 If Cells(r - 1, 4) = "" Then r = r - 1 If ((Target.Column = 1) And (Cells(rt, 1).Value <> "")) _ Or ((Target.Column = 3) And (Target.Value = 1)) Then '**ここが判定の条件式 Cells(r, 4).Value = Cells(rt, 1).Value Cells(r, 5).Value = Cells(rt, 2).Value End If Cancel = True End Sub
その他の回答 (1)
- fujillin
- ベストアンサー率61% (1594/2576)
#1です。 書き漏らしましたが、回答はMSのエクセルのマクロのご質問だと仮定してお答えしています。 違っていましたら、まったくの見当ハズレですので忘れてください。
お礼
MSのエクセルです。本当にありがとうございました。大変助かりました。