- ベストアンサー
エクセル VBAの質問です
A B … 11 2 2 3 2 42 53 62 7 3 8 ・ ・ ・ 上記の表があるとします。(A列かB列どちらかに1~3のデータが入っています。行数はその時によって変わります。) 一番最後に入力されたセルの1つ下のセルをアクティブにする。としたいのです。 例では最後はB7にデータが入力されているので、B8をアクティブにする。というふうにしたいのです。 ネットで調べようとしたのですが、どう調べればいいのかすらわからなく困っています。 どうかご教授下さい。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
一つ一つの行数を確認してから比較する作業をしています。 Sub test() Dim Arow As Long, Brow As Long Arow = Cells(65536, 1).End(xlUp).Row Brow = Cells(65536, 2).End(xlUp).Row If Arow < Brow Then Cells(Brow, 2).Offset(1, 0).Select ElseIf Arow > Brow Then Cells(Arow, 1).Offset(1, 0).Select End If End Sub
その他の回答 (2)
- imogasi
- ベストアンサー率27% (4737/17069)
>一番最後に入力されたセルの1つ下のセルをアクティブにする。としたいのです。 質問の表現が不正確だろう。 「最後」というと、時間的な話だ。これを捉えるのは難しい。 A列またはB列 またはどちらかの列で、 一番下のデータセルの直下セルのことではないのか。 そのどっちか。 後者なら 標準モジュールに Sub test01() Dim d For j = 1 To 2 d = Cells(65536, j).End(xlUp).Row If d > l Then l = d Next j MsgBox l End Sub 上記は最下行なので、求めるものは+1 ーーーー セルを選択するなら Sub test01() Dim d For j = 1 To 2 d = Cells(65536, j).End(xlUp).Row If d > l Then c = j l = d Cells(l, c).Select End If Next j MsgBox l Cells(l + 1, c).Select End Sub
お礼
回答ありがとうございました。 また、よろしくお願いします。
- watabe007
- ベストアンサー率62% (476/760)
参考に With ActiveSheet.Columns("A:B").Find(What:="*", LookIn:=xlValues, _ SearchOrder:=xlByRows, SearchDirection:=xlPrevious) .Offset(1).Select End With
お礼
今回は使いませんでしたが、今後の参考とさせていただきます。 ありがとうございました。
お礼
ご教授ありがとうございます。 うまくできそうです。またよろしくお願いします。