VBAモジュールを分ける意味はたった1つだけ
難しく考えないでいいです。
さて、そのたった1つの意味とはなんなのか、具体例もあわせて話していきましょう。
VBAモジュールを分ける意味はこれだけ
VBAのモジュールを分ける意味は「見やすくグループ分け」するため。
たとえばガストに行ってメニュー見るじゃないですか。
ふとハンバーグメニューを見たら、なんとチーズインハンバーグがないんですよ。
あれって思ったら5ページ目のデザート欄に。
「いや、ハンバーグのメニューぐらいまとめておけよ」って思いますよね。
モジュールもそんな感じ。
VBAモジュールの分けかた【具体例】
今回はレストランのメニューで考えてみましょうか。
たとえばMeatDish[肉料理]っていうモジュールがあった場合。
Sub chickenDishMenu() とり肉料理のメニュー一覧 End Sub Sub porkDishMenu() ぶた肉料理のメニュー一覧 End Sub Sub beefDishMenu() ぎゅう肉料理のメニュー一覧 End Sub
とり、ぶた、ぎゅうが肉なのは分かりますよね。
じゃあここに次のメニューが入ってきたらどうでしょう。
Sub mackerelDishMenu() サバ料理のメニュー一覧 End Sub
肉料理のモジュールなのにサバが入ってきました。
明らかに魚料理なんでFishDish[魚料理]っていう新しいモジュールをつくるほうがいいですよね。
はい、簡単な具体例はこんな感じ。
他のモジュールを今のモジュールで使いたい場合
もしかしたら肉料理モジュールに魚料理モジュールのSubを使いたいときがくるかもしれない。
そんなときは「Call モジュール名.Sub名」でOK。
たとえば次のような感じ。
Sub chickenDishMenu() Call FishDish.mackerelDishMenu とり肉料理のメニュー一覧 End Sub Sub porkDishMenu() ぶた肉料理のメニュー一覧 End Sub Sub beefDishMenu() Call FishDish.mackerelDishMenu ぎゅう肉料理のメニュー一覧 End Sub
これで、とり、ぎゅうのメニューにサバが追加されますね。
まとめ: VBAはモジュールを分けて書いてみよう
- VBAモジュールは「見やすくグループ分け」
- 他のモジュールを使うときは「Call モジュール名.Sub名」
モジュールに処理を追加したいときにも便利。
なので、ざっくりでもグループ分けして見やすいモジュールにしていこう。
・もっとVBA学びたい人向け記事↓