• ベストアンサー

セルの移動(マクロ)

今晩は! お世話になります。 エクセルで多量データ(500行以上)あります。 本来ならば、データ量が多い場合、アクセスを使用した方が良いのかもしれませんが、データを元にグラフ作成等行う為、エクセル使用しています。  そこで、500行以上の次行に入力する際、スクロールするのは面倒なので、ボタン一つで入力する先頭行に移行するマクロを作成したいのですが、まだ自分でプログラムを作成するのは難しく、本などで同じ目的のマクロを見つけ、移している程度です。 今回、同じ目的のマクロが見つからず、ショートカットキーで行うやり方の必ず漏れがなく入力される列(No.「A列」)にセルを選択し、”Ctrl+↓”で入力済みの最後尾に移動。その後”Enter"で次行、入力するセルに移るという事で、この行動を”マクロの記録”をしてみました。 マクロの記録 ~(A4「No.1」)のセルを選択 ~ ”Ctrl+↓” ~ ”Enter"   の順です。 例にA4=No.1でA4~A6(No.1~No.3)まで記入しました。  標準モジュールの内容は・・・ Sub セルの移動() ’ ’セルの移動Macro ’マクロ記録日 : XXXX / X / XX ユーザー名:XXXXXXX ’ ’Keyboard  Shortcut:Ctrl+t ’   Range("A4").Select   Selection.End(xlDown).Select   Range("A7").Select End Sub ・・・と記入されています。 ですが、これでは Range("A7").Select と”A7”と指定されている為、 A7以降の行が入力されていても A7 に移行してしまいます。  これをA列のNo.(連番)が記入されている次行(連番が未記入の先頭行)に移動させるにはどこをどう修正すれば良いのでしょうか? お手数お掛けしますが、上記希望内容に相応しいプログラムのを教えて頂けると助かります。 初心者の為、宜しくお願いします。

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

  • ベストアンサー
回答No.1

Sub sample() Dim lastrow As Integer lastrow = Range("a65536").End(xlUp).Row Range("A" & lastrow + 1).Activate End Sub A列の最終行を取得して、その次の行をアクティブにします。

s-k-pooh
質問者

お礼

sakura9113さん、回答ありがとうございます! 早速会社で使用の為、明日やってみます。 もし、やってみて補足する時は、すいませんが宜しくお願い致します。

その他の回答 (2)

  • suz83238
  • ベストアンサー率30% (197/656)
回答No.3

A列だけ見るんなら Sub yyy() Range("A65536").End(xlUp).Offset(1, 0).Select End Sub

s-k-pooh
質問者

補足

suz83238さん、再度回答ありがとうございます! とりあえず、空欄の無いセルの列は”A列”のみなので、A列重視の法がよいですよね。  途中、空欄のセルがあっても入力済みの最終行って読み取れるのですか?  全くの素人ですいません。

  • suz83238
  • ベストアンサー率30% (197/656)
回答No.2

最終行の次という解釈でいいですか? それなら Sub xxx() ActiveSheet.Cells.SpecialCells(xlLastCell).Offset(1, 0).Select End Sub

s-k-pooh
質問者

お礼

suz83238さん、回答ありがとうございます! 早速会社で使用の為、明日やってみます。 もし、やってみて補足する時は、すいませんが宜しくお願い致します。

関連するQ&A

専門家に質問してみよう