こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

セルの移動(マクロ)

今晩は! お世話になります。
エクセルで多量データ(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.(連番)が記入されている次行(連番が未記入の先頭行)に移動させるにはどこをどう修正すれば良いのでしょうか?

お手数お掛けしますが、上記希望内容に相応しいプログラムのを教えて頂けると助かります。
初心者の為、宜しくお願いします。

投稿日時 - 2008-03-24 22:13:15

QNo.3891741

すぐに回答ほしいです

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

Sub sample()
Dim lastrow As Integer
lastrow = Range("a65536").End(xlUp).Row
Range("A" & lastrow + 1).Activate
End Sub

A列の最終行を取得して、その次の行をアクティブにします。

投稿日時 - 2008-03-24 22:31:52

お礼

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

投稿日時 - 2008-03-25 22:11:18

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.3

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

投稿日時 - 2008-03-24 22:34:46

補足

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

投稿日時 - 2008-03-25 22:22:14

ANo.2

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

投稿日時 - 2008-03-24 22:32:38

お礼

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

投稿日時 - 2008-03-25 22:11:53

あなたにオススメの質問