クラスモジュールを、勉強するにあたり、サンプルがすくないですよね。
サンプルがあったとしても、とても長いコードですね。
なので、実務で利用できるサンプルを用意しました。
目次
クラスモジュールで、最終列、最終行を取得
こんにちは。伊川(@naonaoke)です。
すっかり、クラスモジュールにハマっています。
最近、思うのですが、クラスモジュールは、設計図と言います。
しかし、以前に紹介した、辞書機能のように利用すると、とても便利です。
設計図とは、多分、システムの設計も、必要なのでしょう。
しかし、コードを書く人が、いかに楽ができるかというのも、込みで、設計図のような気がします。
Excelで、VBAを利用するからには、最終列、最終行の取得が必須スキルとなります。
初心者の頃は、本当の理解できませんでした。
当然、ループも理解できませんでした。
しかし、いつしか、コードを眺めていると、理解出るものです。
以前は、Functionで、最終行を取得するコードを紹介しました。
今回は、クラスモジュールで、最終行、最終列を取得します。
このブログはこんな人にお勧め
- Excelで、クラスモジュールを勉強している人
- Excelで、最終行、最終列を取得したい人
- クラスモジュールって何?って思っている人
このブログを、読み終わるころには・・・・
クラスモジュールにそっと、忍ばせてください。
きっと便利に、効率的にコードを記載できます。
最終行、最終列の取得
VBAを勉強して、最初の壁は、多分ココです。
ループの要素が絡み、1番下と、VBAで記載しなければなりません。
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 クラスモジュールに記載
Aとか、1とかが、なくなりました。
maxR,maxC という関数を作成します。
このmaxR,maxCが、作り出すインスタンスは何か?
最終行を取得、最終列を取得、が、インスタンスになります。
そして、maxR,maxCが、活躍する場所は、ActiveSheetということになります。
最終行、最終列を取得 作業手順 その3 標準モジュールから、呼び出す
このコード実行すると、Msgboxに、最終列、最終行が表示されます。
maxR(1)⇒1列目
maxC(1)⇒1行目
コード自体は難しくないと思います。
最終行、最終列を取得 作業手順 その4 ループで遊んでみる
maxR(1)⇒1列目
maxC(1)⇒1行目
この(1)の数字の部分を、For~Nextのループさせたらどうなるか?
すべての画像は貼りませんが、最終的には、13番目を指定して、終了となります。
最終行、最終列を取得 作業手順 その5 手品的なことをやってみる
このように、最終行に、伊川直助を入れてみたいとします。
このコードを実行します。
こんなこともできます。
このコードを実行すると、元に戻ります。
ここがポイント
クラスモジュールの説明が、難しく記載されているので、やる気がなくなると思います。
今回のコードも、クラスモジュールを含めて、15行くらいです。
いきなり、難しいものから勉強のするのではなく、カンタンなものから勉強しましょう。
今回のコードは、本当に、クラスモジュールに、仕込んでください。
最終行、最終列の取得がカンタンになります。
まとめ
クラスモジュールのカンタンなコードの紹介でした。
もちろん、Functionでもできます。
どんな時に、どんなコードを利用するのか?
そのスキルも含めて、VBAのスキルです。
今回も最後まで読んでいただきありがとうございました。
今回のサンプルファイルは、No271です。
わからない事を延々と考えるのは、無駄です。
- なんで作動かないの?
- もうやだ!VBAなんか嫌い!
- ネットで調べても情報がない!
必ず作動するコードが、ここにあります。