プロが教えるわが家の防犯対策術!

エクセルでのダブルクリックなんですが、エクセルの行の一番上の一行目に右側にそれぞれの項目を作り、その下にその項目の各データを入れてゆくのですが、一番上の項目をダブルクリックしたら、下のデーターがいまだ入ってゐないところに一気にセルが移動するようにしたい場合、どのようにVBA書けばいいのでしょうか。例えば 項目を各セールスマン名として、訪問家名を下に書いてゆく場合、あるセールスマンは訪問の家は多いがあるセールスマンは少ない場合 ずるずるとセルをマウスで移動するのに手間がかかるのを簡略化したい。

A 回答 (4件)

こんにちは!



具体的な範囲が判らないのですが・・・

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
 If Target.Row = 1 Then
  Cancel = True
   Cells(Rows.Count, Target.Column).End(xlUp).Offset(1).Select
 End If
End Sub

とりあえず上記コードで1行目をダブルクリックすると
その列の最終行のひとつ下のセルが選択されます。

※ その1列右隣りを選択したい場合は
>Offset(1)

>Offset(1,1)
に変更してみてください。

その場合は奇数列か偶数列かを限定するようにする必要があると思います。
上記コードはすべての列で反応します。m(_ _)m
    • good
    • 0
この回答へのお礼

できました、さすがです!

お礼日時:2019/12/10 17:42

項目行とかのセルの下枠線をダブルクリックすれば、データがある一番下のセルまで飛びますが、あえてVBAなんですか?

    • good
    • 0

》 エクセルの行の一番上の一行目に右側


「行の一番上」が必ず「一行目」だから、その表現は何かの間違いでしょ?!
    • good
    • 0

こんにちは



よくわからないけれど…
 「1行目のセルをダブルクリックしたら、その列の最終行を表示するまでスクロールする」
みたいな感じのことでしょうか?

以下のような感じで描けば宜しいかと思います。
ダブルクリックイベントでクリックされたセルが引数として渡されますので・・・
1)1行目であることのチェック
 Target.Row = 1

2)その列(=Target.Column)の最下行を取得
https://excel-ubara.com/excelvba1/EXCELVBA318.html

3)目的のセルを表示させる
方法はいろいろあると思いますが、とりあえず対象セルをActivateすることで足りると思います。
https://docs.microsoft.com/ja-jp/office/vba/api/ …


※ 実際は、最下行ではなくその次の行を対象にしたいのでしょうから、2)で+1しておけば良さそう。
    • good
    • 0

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