見出し画像

【Excel VBA】クラスモジュールで、最終列、最終行を取得

クラスモジュールを、勉強するにあたり、サンプルがすくないですよね。
サンプルがあったとしても、とても長いコードですね。
なので、実務で利用できるサンプルを用意しました。

YouTubeでも解説しています。是非、ご覧ください。


紹介する内容は、こんな事です 30秒で確認できます。




クラスモジュールで、最終列、最終行を取得


こんにちは。伊川(@naonaoke)です。
すっかり、クラスモジュールにハマっています。
最近、思うのですが、クラスモジュールは、設計図と言います。

しかし、以前に紹介した、辞書機能のように利用すると、とても便利です。
設計図とは、多分、システムの設計も、必要なのでしょう。
しかし、コードを書く人が、いかに楽ができるかというのも、込みで、設計図のような気がします。

Excelで、VBAを利用するからには、最終列、最終行の取得が必須スキルとなります。

初心者の頃は、本当の理解できませんでした。

当然、ループも理解できませんでした。

しかし、いつしか、コードを眺めていると、理解出るものです。

以前は、Functionで、最終行を取得するコードを紹介しました。
記事差込

今回は、クラスモジュールで、最終行、最終列を取得します。

このブログはこんな人にお勧め

Excelで、クラスモジュールを勉強している人
Excelで、最終行、最終列を取得したい人
クラスモジュールって何?って思っている人

このブログを、読み終わるころには・・・・

今回は、1番実務で利用するであろう、最終列、最終列を取得します。
クラスモジュールにそっと、忍ばせてください。
きっと便利に、効率的にコードを記載できます。

最終行、最終列の取得

VBAを勉強して、最初の壁は、多分ココです。
ループの要素が絡み、1番下と、VBAで記載しなければなりません。
1番下って書けるのか?
最初は、そう思うはずです。
本当に、初心者の人は、ループを最初の覚えたほうが良いです。
しかし、クラスモジュールが、気になっている人は、今回の記事を、是非読んでください。
また、動画の方が、手品的要素もありますので、お時間があれば、動画も、ご視聴ください。

最終行、最終列の取得 作業手順 その1 通常のコード

画像1

上の図では、最終列⇒12 最終行⇒10
この値を取得します。
maxrow = Cells(Rows.Count, "A").End(xlUp).Row
この書き方は、A列の1番最後⇒セルA12です。
maxColumns = Cells(1, Columns.Count).End(xlToLeft).Column
この書き方は、1行目の1番最後⇒セルJ1です。

Cells(Rows.Count, "A").End(xlUp).Row
Cells(1, Columns.Count).End(xlToLeft).Column
このコードは、汎用性があります。

無題

この赤丸の部分に、工夫を加えると、もっと汎用性がアップします

最終行、最終列を取得 作業手順 その2 クラスモジュールに記載

画像2

Aとか、1とかが、なくなりました。
maxR,maxC という関数を作成します。
このmaxR,maxCが、作り出すインスタンスは何か?
最終行を取得、最終列を取得、が、インスタンスになります。
そして、maxR,maxCが、活躍する場所は、ActiveSheetということになります。

最終行、最終列を取得 作業手順 その3 標準モジュールから、呼び出す


画像4

このコード実行すると、Msgboxに、最終列、最終行が表示されます。

画像5
画像6

maxR(1)⇒1列目
maxC(1)⇒1行目

コード自体は難しくないと思います。

最終行、最終列を取得 作業手順 その4 ループで遊んでみる

maxR(1)⇒1列目
maxC(1)⇒1行目

この(1)の数字の部分を、For~Nextのループさせたらどうなるか?

画像7

すべての画像は貼りませんが、最終的には、13番目を指定して、終了となります。

画像8

最終行、最終列を取得 作業手順 その5 手品的なことをやってみる

画像9

このように、最終行に、伊川直助を入れてみたいとします。

画像10

このコードを実行します。

画像11
画像12

こんなこともできます。

画像13

このコードを実行すると、元に戻ります。

ここがポイント

クラスモジュールの説明が、難しく記載されているので、やる気がなくなると思います。
今回のコードも、クラスモジュールを含めて、15行くらいです。
いきなり、難しいものから勉強のするのではなく、カンタンなものから勉強しましょう。
今回のコードは、本当に、クラスモジュールに、仕込んでください。
最終行、最終列の取得がカンタンになります。

まとめ

クラスモジュールのカンタンなコードの紹介でした。
もちろん、Functionでもできます。
どんな時に、どんなコードを利用するのか?
そのスキルも含めて、VBAのスキルです。
今回も最後まで読んでいただきありがとうございました。

よろしければサポートをお願いします。いただいたお金に関しては、書籍の購入に充て、より良い情報を皆様に提供します。