VBA プログラミング

【中級者向け】VBAでよく使う便利なコードまとめ

OL

Excelの自動化に憧れてVBAを勉強しています!でもプログラミングは難しい…

プログラミングといっても、よく使うものから覚えていけば大丈夫です!

Excelを使うビジネスマンならVBAを使いこなせるようになりたいと

一度は考えたことがあるでしょう。

今回、私がVBAを実務で使っていて

「これは使える!」

と思ったものを紹介していきます。

量が多いので少しずつ追加していきますね

最終行を取得する方法

VBAを使って、自動化ファイルを作るときに、とてもよく使うのが

「最終行の取得です」

私は医療に関わっていた経験があるのですが、病院でカルテのデータをつなぎ合わせるときに、

「最終行の取得」はよく使われます。

2パターンに分けて解説します。

パターン1

Dim LastRow As Long '最終行の名前の定義
LastRow = Worksheets("集計シート").Cells(1, 1).End(xlDown).Row

一つ目のパターンです。

「集計シート」という名のシートのセルの1行目1列目(つまり一番左上)から、

「ctrl」+「↓」を押したときのセルの行数を出力します。

「ctrl」+「↓」を押すと、その列の一番下の行に飛ぶと思いますが、

その時の行が表示されます。

この状態で、「ctrl」+「↓」を押すと…

一番下の20行目に移動できます。

上に書いたコードは、この時の行数を示しているということです。

この方法で大体は表示できると思いますが、

これでは最終行を表示できないパターンがあります。

それは、「途中で空白があったとき」です。

全20行だったとしても、10行目に空白があれば、

この場合のLastRowは「9」になってしまいます。

この状態で「ctrl」+「↓」を押しても…

9行目に移動してしまい、一番下までカーソルが動いてくれません。

この場合は、最終行が9行目となってしまい、正しく表示されません。

途中で空白のある可能性のデータの場合はこちらをご使用ください。

パターン2

Dim LastRow As Long '最終行の名前の定義
LastRow = Worksheets("集計シート").Cells(Rows.Count, 1).End(xlUp)

この方法は、Excelで出しうる一番下の行数(1048576行目)から、「ctrl」+ 「↑」を押したときの行数という意味です。

この方法であれば、途中で空白があっても、一番下の行を見つけることができます。

1048576行目から、「ctrl」+「↑」を押すと…

20行目を取得することができます。

このように、途中で空白がある場合でも対応できるので、

私は最終行を取得するときは、いつもこの「パターン2」の方法で書いています。

表のタイプによって、「どちらなら最終行を取得できそうか」考えてコーディングしていきましょう

まとめ

少しずつ便利なコードを書いていって、たまったらまとめようと思ってます。

お疲れ様です。

CSE

元医療従事者として病院で働いていましたが、システムに興味を持ち、ITエンジニアに転職しました。未経験からエンジニアとして働く過程で得た知識や経験を共有し、ITの世界への一歩をサポートします。特に、パソコンが苦手でも、1つずつ覚えれば大丈夫というメッセージを伝えたいです。 社内で外注を検討していた100万円規模のシステムを自作した経験があり、効率化やコスト削減に貢献しました。

-VBA, プログラミング