TOPページへ

表の指定した列(連続したデータ)の最終行(下端のセル)を調べるExcel VBAの記述

Excel VBAExcel のテクニカル情報サイトです。
Excelは、VBAを使うとありとあらゆる処理ができ、とても便利です!
そんな、エクセルの知識や実用的なVBAマクロなどをたくさん紹介していきます!


このページでは、表の指定した列(連続したデータ)の最終行(下端のセル)を調べるExcel VBAの記述についてまとめています。





RSS情報アンテナ表示
RSS
RSS

【サイト管理人よりひと言】
Excel VBA の素晴らしさに惹かれてこのサイトを作りました。 ExcelでVBAプログラミングが組めるようになると、どんな面倒な処理でも VBAで処理をさせることができるようになります。 私の場合、事務系の仕事の面倒な処理は全てExcelにやらせています。 Excel VBAに出会ってからは驚くほど仕事の効率が上がりました。 今まで数時間かかっていた事務処理の仕事が、わずか数秒で終わったりしています。 本当にエクセルは素晴らしい表計算アプリケーションソフトです。

表の指定した列(連続したデータ)の最終行(下端のセル)を調べるExcel VBAの記述

エクセルのシート上に表があって、その表のある指定した列の最終行
(連続したデータの下端のセル)を調べたい場合がけっこうあると思います。
個人的には表の最後のセルを調べる(移動する)VBAマクロは良く使います。
どういう時に使うかと言うと、たとえば、ユーザーフォームでテキストの
入力フォームを表示させ、そこにデータを入力させて、
その入力されたデータを表の最後に追加したりとか。
また、最新のデータが表の一番下にある場合などに瞬時に
最後のデータを取り出したり、データの最後にカーソルを移動させたりできます。
このように複雑な処理をやりたい場合に、連続したデータの最後を調べる処理は
結構使います。それでは、表の指定した列(連続したデータ)の最終行を調べる
VBAの記述です。(連続したデータの下端のセルを調べるVBAの記述です。)



[記述例] 表の指定した列の最終行を調べるVBA記述
Sub test()

    '変数の宣言(とりあえずVariant型)
    Dim r As Variant

    '表の指定した列(連続したデータ)の最終行を代入
    r = Range("A1").End(xlDown).Row

    'メッセージボックスで結果を表示
    MsgBox "指定した列のいちばん下端のセルは、" & r & " 行目です。"

End Sub
[動作とプログラムの説明]
最初に、結果を代入して表示する時に使う変数rの宣言をしています。
私の方では表の大きさは分からないのでVariant型で宣言しています。
表の大きさが分かっているならば、型を適切なものに変えて構いません。
変数の適切な宣言は、メモリの節約になりますので。
次に表の指定した列の最終行を変数のrに代入します。
ここで注意して欲しいのは、連続したデータの下端の行数が代入される
ということです。連続したデータの途中で空白があると、
空白行の1つ前、つまりデータが途切れたセルが最後の行と見なします。
Range("A1")
のところの「A1」は、指定する列(起点となるセル)です。
ここを実際に自分が調べたい列(起点となるセル)のセルに変えて下さい。
End(xlDown).Row
のところは、連続したデータ(列)の最後という意味です。
(「Row」は列の指定です。)
今回のVBA記述は、表の上から、連続したデータの下端まで移動する
(調べる)ものですが、応用で、表の下から調べることもできます。
もし連続したデータの途中にどうしても空白行(空白セル)ができて
しまう場合は、表のいちばん下から上方向に移動(調べる)ことで、
表の最後を確実に調べることができます。Excel2003の場合だと、
最終行列数は65536行、Excel2007やExcel2010の場合だと、最終行列数は、
1048576行になります。なので、以下のような記述をします。

[記述例] 表の指定した列の最終行を下から調べるVBA記述
Sub test()

    '変数の宣言(とりあえずVariant型)
    Dim r As Variant

    '表の指定した列(連続したデータ)の最終行を下から調べる
    r = Range("A65536").End(xlUp).Row

    'メッセージボックスで結果を表示
    MsgBox "指定した列のいちばん下端のセルは、" & r & " 行目です。"

End Sub
この場合、先の記述例では、
End(xlDown).Row
だったのが、
End(xlUp).Row
になっていますので、注意して下さい。
「xlDown」が下に向かって移動(調べる)、
「xlUp」が上に向かって移動(調べる)ことを意味しています。




 

カテゴリ:セル操作関係VBAマクロ 



サイト内検索



Excel NAVI(エクセル ナビ)のトップページへ移動



当サイトのプライバシーポリシーと免責事項について
当サイトの文章、記事、内容、画像、写真などの無断利用、無断転載を禁じます。
Copyright (C) Excel NAVI(エクセル ナビ) All Rights Reserved.