最終行を選択する マクロ講座19回

新規に入力する行を求めるマクロ

大きな表で最終行を選択する~大きな表を入力している時、毎回入力行までスクロールするのは、大変です。

そこで、今回は、最終行を求め、新規データ入力用の次の行のセルに移動し選択するというマクロを作成します。
新規に入力する行を求める(最終行を選択する)マクロ
を作成しましょう。
とはいえ、このマクロはマクロの記録では、作成できないので、
コードの説明から、始めます。Excel2013の解説とExcel2003の解説に分けてあります。
(サンプルファイルは、こちらから マクロ講座19回サンプルデータ

新規データの入力行を取得コードの解説 

エクセル2003以前のVersionでは、新規データの入力行を取得するコードは、
Sub 新規データの入力行を取得() 
	Range("A65536").End(xlUp).Offset(1).Select
End Sub    
エクセル2003までのシートは横列が256列、縦行が65536行でしたのでコードの最終行が違います。
一方、エクセル2007以降のバージョンでは、
Sub 最終行を取得()
    Range("A1048576").End(xlUp).Offset(1).Select
End Sub    
となります。Excel2007、2010、2013では、行数は1,048,576行と100万行を超えてます。 Range("A65536")は、A列の一番下の最終行のセルのことです。

次の End(xlUp)というのは
A列の1048576行目から、上にシートをさかのぼって、 データの最終行をみつけます。
入力行は、その一つ下ですから、

Offset(1).Select で、

Offset(1)は、1行下に下がったセル、をSelect選択してくれます。

このマクロボタンを、作成しておくと、何かと便利ですよ。
マウスでスクロールなんて、ばかばかしくてやってられなくなります。

■このマクロから、Offset(1)を除くと、
Range("A1048576").End(xlUp).Select

これは、そのまま最終行を取得したことになります。
では、エクセルでマクロを作成してみることにします。
エクセルのリボンの開発タブから、Visual Basic Editorをクリックします。ショートカットキー Alt+F11 でも起動できます。
Visual Basic Editorが開きます。
入力エリアに、Sub 最終行を取得()
と書いて、Enterキーで改行します。
自動的に、End Subと入力されます。
この間にコードを書きます。
Range("A1048576").End(xlUp).Offset(1).Select
と入力して終了してエクセルに戻りましょう。

マクロを実行してみます。 マクロの表示ボタンをクリックします。
表示されるダイアログの中から、実行するマクロを選び、 実行ボタンをクリックします。
データが入力されている最下行の一つしたの行が選択されています。 大きな表を操作している時には、便利なマクロです。
Offset(1,1)とすれば、1行下、1列右へ移動したセルを選択します。

今日の講義は以上です。お疲れ様でした。
スポンサーリンク
スポンサーリンク