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