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

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

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

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

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

エクセル2003以前のVersionでは、
Sub 新規データの入力行を取得() 
	Range("A65536").End(xlUp).Offset(1).Select
End Sub    
2007以降では、
Sub 最終行を取得()
    Range("A1048576").End(xlUp).Offset(1).Select
End Sub    
Range("A65536")は、A列の一番下の最終行のセルのことです。
このページは、エクセル2003で解説しています。
エクセルのシートは横列が256列、縦行が65536行です。

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

Offset(1)は、1行下に下がったセル、を
Select選択してくれます。
このマクロボタンを、作成しておくと、何かと便利ですよ。
マウスでスクロールなんて、ばかばかしくてやってられなくなります。

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

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

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


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