ExcelVBA 最終行、最終列 クラスモジュールを利用しよう
ExcelVBAをある程度使っていると、クラスモジュールというのが気になってくると思います。
今回の記事は、初めてクラスモジュールを使う方が、クラスモジュールを使う体験ができる内容になっています。参考になれば嬉しく思います。
早速、「挿入」より「クラスモジュール」を選択し、クラスモジュールをプロジェクトに挿入します(標準モジュールを挿入する場所にあります)。
今回は、オブジェクト名を図1のように「Class」に変更します(自分で好きなオブジェクト名をつける事ができます)。
![](https://nekoni-gohan.com/wp-content/uploads/2020/10/3efbc152b3effc3a780a6c8615aa88e2.png)
そして、今回は図2のクラスモジュールに「myLastRow」という任意の列の最終行を求める関数と、「myLastCol」という任意の行の最終列を求める関数を記述しました。
![](https://nekoni-gohan.com/wp-content/uploads/2020/10/1c7da2a2c8970aeace6f6bb59aaf1205.png)
上記関数を実際に利用するには、図3のように標準モジュールで、「Class」のインスタンスである「myClass」を生成します。こうする事で、クラスモジュールの関数を使用できるようになります。クラスモジュールの関数を利用するには、「myClass」に「.」をつけてクラスモジュールにある関数名を入力します。
![](https://nekoni-gohan.com/wp-content/uploads/2020/10/e907455eed9081a8fe268017968096a5.png)
図3の標準モジュールでは、データが入力されたセルの最終行と最終列を求めてメッセージボックス関数で表示しています。行と列を求めるエクセルシートのデータは、図4のようになっています。
![](https://nekoni-gohan.com/wp-content/uploads/2020/10/d0970cadb94a31e56dd5e968060ab39e.png)
標準モジュールでTestのマクロを実行すると、メッセージで1列目の行数である「2」、1行目の列数である「3」が表示されます。
今回のようにクラスモジュールを利用すると、行いたい処理をまとめておく事ができるので、VBAでプログラムを書いていくのがとても楽になります。クラスを複数作成して、「ファイル読み込みクラス」や、「印刷を行うクラス」などに分けるとプログラムのメンテナンス性も上がります。
何よりも、「ファイルを読み込む人」、「印刷をする人」のように処理毎に係を分ける事ができるので、プログラムがとてもわかりやすくなります。
クラスモジュールを使うようになると、VBAが格段に面白くなるのでぜひ取りれてみてください。