• ベストアンサー

エクセル VBAの質問です

 A B … 11  2 2 3 2 42 53 62 7 3 8 ・ ・ ・ 上記の表があるとします。(A列かB列どちらかに1~3のデータが入っています。行数はその時によって変わります。) 一番最後に入力されたセルの1つ下のセルをアクティブにする。としたいのです。 例では最後はB7にデータが入力されているので、B8をアクティブにする。というふうにしたいのです。 ネットで調べようとしたのですが、どう調べればいいのかすらわからなく困っています。 どうかご教授下さい。

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

  • ベストアンサー
  • van111
  • ベストアンサー率14% (1/7)
回答No.1

一つ一つの行数を確認してから比較する作業をしています。 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

noname#140980
質問者

お礼

ご教授ありがとうございます。 うまくできそうです。またよろしくお願いします。

その他の回答 (2)

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

>一番最後に入力されたセルの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

noname#140980
質問者

お礼

回答ありがとうございました。 また、よろしくお願いします。

  • watabe007
  • ベストアンサー率62% (476/760)
回答No.2

参考に With ActiveSheet.Columns("A:B").Find(What:="*", LookIn:=xlValues, _ SearchOrder:=xlByRows, SearchDirection:=xlPrevious) .Offset(1).Select End With

noname#140980
質問者

お礼

今回は使いませんでしたが、今後の参考とさせていただきます。 ありがとうございました。

関連するQ&A

専門家に質問してみよう