VBAモジュールを分ける意味はたった1つです【具体例あり】
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学びたい人向け記事↓

関連キーワード