- ベストアンサー
セルの移動(マクロ)
今晩は! お世話になります。 エクセルで多量データ(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.(連番)が記入されている次行(連番が未記入の先頭行)に移動させるにはどこをどう修正すれば良いのでしょうか? お手数お掛けしますが、上記希望内容に相応しいプログラムのを教えて頂けると助かります。 初心者の為、宜しくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
Sub sample() Dim lastrow As Integer lastrow = Range("a65536").End(xlUp).Row Range("A" & lastrow + 1).Activate End Sub A列の最終行を取得して、その次の行をアクティブにします。
その他の回答 (2)
- suz83238
- ベストアンサー率30% (197/656)
A列だけ見るんなら Sub yyy() Range("A65536").End(xlUp).Offset(1, 0).Select End Sub
補足
suz83238さん、再度回答ありがとうございます! とりあえず、空欄の無いセルの列は”A列”のみなので、A列重視の法がよいですよね。 途中、空欄のセルがあっても入力済みの最終行って読み取れるのですか? 全くの素人ですいません。
- suz83238
- ベストアンサー率30% (197/656)
最終行の次という解釈でいいですか? それなら Sub xxx() ActiveSheet.Cells.SpecialCells(xlLastCell).Offset(1, 0).Select End Sub
お礼
suz83238さん、回答ありがとうございます! 早速会社で使用の為、明日やってみます。 もし、やってみて補足する時は、すいませんが宜しくお願い致します。
お礼
sakura9113さん、回答ありがとうございます! 早速会社で使用の為、明日やってみます。 もし、やってみて補足する時は、すいませんが宜しくお願い致します。