- ベストアンサー
入力されている行を判別する方法
- エクセルVBAを使用して、入力されている行を判別する方法について教えてください。
- 特定のセルをダブルクリックした場合に別のセルに値を入力する方法について教えてください。
- 特定のセルに値が入力されている場合に、別のセルに次々と値を入力する方法について教えてください。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
VBA 最後の行 などで検索するといくつも回答があります。 私たちが最もよく使う方法が、 シートの最終行から上へ移動して空白でない行のひとつ下 といった感じで使いますが MSGBOX=Worksheets("Sheet2").Cells(Rows.Count, 3).End(xlUp).Row+1 とか Msgbox=Worksheets("Sheet2").Range("C" & Rows.Count).End(xlUp).Row+1 で最後の行番号が得られます。 Worksheets("Sheet2").Range("C" & Rows.Count).End(xlUp).).Offset(1).Value = Target.Value http://www.niji.or.jp/home/toru/notes/8.html などを参考にしてください。 それと Range("A1") などとセルを指定した後には、必ず Value などプロパティを指定してください。 エクセルの場合、省略すると自動で Valueになりますが If Target = Range("A1") Then は If Target.Addrrss = Range("A1").Address Then としなければ、おかしいことに気が付くと思います。 No1の方がおっしゃるように If Target.Addrrss = "$A$1" Then でも同じ結果です。 一度、どこかに Msgbox Target.Address と入れてみて表示される内容を確認してみてください。
その他の回答 (1)
- keithin
- ベストアンサー率66% (5278/7941)
今のマクロを削除して,次のマクロに差し替えます。 private sub Worksheet_BeforeDoubleClick(byval Target as excel.range, cancel as boolean) if target.address <> "$A$1" then exit sub worksheets("Sheet2").range("C65536").end(xlup).offset(1).value = target.value cancel = true end sub シート2の「C9セル」に(ストッパーとして)何か「タイトル」を記入しておいてから,シート1のA1をWクリックする。 #補足 アナタの今のマクロでやっている If Target = Range("A1") Then という検査方法は適当ではない(実際には結果オーライになりますが)ので,上述ではそこも参考にしてください。
お礼
具体的なコードを教えてくださりありがとうございました。 ご指摘も感謝致します。嬉しいです。
お礼
行番号についてのご教授ありがとうございました。 とても参考になりました。なんとか出来そうです。 エクセル初心者なので毎日四苦八苦しています。 皆様のご親切に心から感謝致します。 お一人の方だけをベストアンサーに選ぶのは心苦しいのですが、バージョン違いでも使えるコードをご教授くださったNo.2の方をベストアンサーにさせて頂きます。 皆様、本当にありがとうございました。