クラスモジュールを使えれば...
- 短いコードで質の高いコードが書けたり
- 自作Excel関数を作れたり
今回はクラスモジュールのメリットと1番簡単な作りかたを紹介していきます。
VBAクラスモジュールのメリットとは?
・クラスモジュール3つのメリット
- 標準モジュールを短いコードで管理できる
- コードが多くなっても修正しやすい
- 使いまわしができて、わざわざ1から書かなくてよくなる
順に説明していきます。
メリット1: 標準モジュールを短いコードで管理できる
クラスモジュール化すると、標準モジュールにたくさんコードを書かなくてすむ。クラスモジュールで一定の処理をまとめて管理できるから。
可読性はばつぐんによくなり、ぐちゃぐちゃした見にくいコードにならないで済む。
メリット2: コードが多くなっても修正しやすい
クラスモジュールにすれば、バグがでたときにどこを修正すればいいか早く分かる。クラスモジュールでバグがでたらそのクラスモジュール内を変更するだけ。
functionをつくるより、より質の高いコードを作りたいなら作るべき。
メリット3: 使いまわしができて、わざわざ1から書かなくてよくなる
1度クラスモジュールを書いてしまえば、どんな場面でも使いまわしが可能。わざわざ1から書かなくていい複雑な処理をクラス化すれば、次使うときは入れるだけ。
あとは簡単な設定をすればOK。圧倒的な時間短縮になる。
例としてVBAで定時/残業の給与計算を自動化する【Excel関数みたいに使えて便利】でクラスモジュールを使った給料計算を自動化するコードを書いてるのでどうぞ。
VBAクラスモジュールの1番簡単な作りかた
・流れは3ステップでOK
- VBEを起動してクラスモジュールをつくる
- クラスモジュール名の変更・コードを入力
- クラスモジュールが動いてるか確認
そしたら、順に説明していきます。
Step1: VBEを起動してクラスモジュールをつくる
- Excelを開いて『Alt + F11』を押す
- VBEが起動したら、『Ctrl + R』でプロジェクトエクスプローラーを開く
- Microsoft Excel Objectsを右クリック→挿入→クラスモジュールをつくる
Step2: クラスモジュール名の変更・コードを入力
- 『F4』または、表示→プロパティウインドウを押してプロパティをだす
- クラスモジュールのオブジェクト名『Class1』から『FirstClass』に変更
- クラスモジュールに次のコードを入力する
Public Sub firstGreeting() MsgBox "Hello first class." End Sub
Step3: クラスモジュールが動いてるか確認
- Microsoft Excel Objectsを右クリック→挿入→標準モジュールをつくる
- 『Module1』に下記コードを入力
Public Sub myFirstGreeting() Dim person As New FirstClass person.firstGreeting End Sub
- 『F5』でマクロの実行を押してメッセージがでてくればOK
最初にDimで作ったクラスを定義するけど、AsのあとにNewをいれるのを忘れずに。『.』以降でさっき作ったfirstGreeting()を呼び出せすことが可能。
まとめ: クラスモジュールで再現性の高いコードを書こう
クラスモジュールが書けるようになるとファイルが変わってもコードを使いまわせる。短いコードで修正が簡単なコードになるから、レベルアップ間違いなし。
どんどんクラス化して質の高いVBAコードを作ろう。
・もっとVBA学びたい人向け記事↓