スライドショースライドショー

VBAのモジュールの意味とは?種類や使い方を徹底解説!


VBAを学び始めたけど、モジュールの意味がわからない・・・
モジュールの意味や種類を詳しく知りたいな・・・
できれば、意味だけじゃなく使い方も知りたい・・・

VBAを学び始めたときに悩む概念の一つに、モジュールがあります。モジュールの意味がよくわからず学習を進めてしまうと、、、わからないことを調べたときに言葉の意味でつまづいてしまうため、意味を覚えておくことがおすすめです。

こんにちは!フリーランスエンジニア兼テックライターのワキザカです。

この記事では、VBAのモジュールの意味・種類・使い方について解説します!

また、最後にモジュールと密接にかかわるプロシージャについても解説しているので、ぜひ最後まで読んでみてくださいね!

この記事はこんな人のために書きました。

  • VBAのモジュールの意味・種類・使い方を知りたい人
  • VBAのモジュールの理解を深めたい人

VBAのモジュールとは?

最初に、VBAのモジュールについて解説します。

モジュールとは、コードを書くための場所のことです。モジュールの中でVBAを書き、マクロを作ります。

種類については以降で詳しく解説しますが、例えば次のように「Calc_Mdl」という名前のモジュールの中に、「2つの値を合計するマクロ」「2つの値を積算するマクロ」を作ることができます。


モジュールとマクロの関係性

モジュールという大きな箱の中にVBAを書き、マクロを作っていく」とまずはざっくり覚えておくことがおすすめです!

次に、VBAのモジュールの種類について解説していきます。VBAのエディタVBEを使って詳しく解説していきますので、まだVBAを一度も書いたことがない場合は、先に以下を見て簡単なVBAを作ってみることがおすすめです!

【ExcelVBA入門】VBAの基礎知識・書き方・おすすめの学習方法を解説
更新日 : 2019年10月1日

VBAのモジュールの種類

それでは、VBAのモジュールの種類について解説します。

VBAには、大きくわけて以下4つのモジュールがあります。


■VBAのモジュールの種類

  • ブックモジュール
  • シートモジュール
  • フォームモジュール
  • 標準モジュール

それぞれ詳しく解説しますね。

ブックモジュール・シートモジュール

まず、ブックモジュール・シートモジュールについて解説します。

ブックモジュールとシートモジュールは、ブックレベルで全体を操作する時、シートレベルで操作する時などにそれぞれ書く場所のことです。

たとえば、「ブックを開いたとき」「ブックを保存したとき」に処理を書きたいときは、ブックモジュールに書きます。「ブックを開いたときに、別のファイルのデータを読み込む」のような処理を作ることができます。

「セルの値を変更したとき」「シートを追加したとき」に処理を書きたいときは、シートモジュールに書きます。「必須項目のA1セルの値が空になった時だけ、メッセージを表示する」のような処理を作ることができます。

このように、ブック単位・シート単位でVBAのコードを書く場所がブックモジュール・シートモジュールです。

フォームモジュール

次に、フォームモジュールについて解説します。

フォームモジュールはVBAで画面を作るときに使う、ユーザーフォームについているコードを書く場所のことです。VBAでは、つぎのような画面を使って処理を作ることができます。


請求データ登録画面

「登録ボタンをクリックしたときの処理」「クリアボタンをクリックしたときの処理」など、アプリの機能を作るための処理を作ることができます。

ちなみに、ユーザーフォームの作り方配下で解説しています。詳しく知りたい方は、見てみてくださいね!

【VBA入門】ユーザーフォームの使い方(テキスト表示、カレンダー)
更新日 : 2019年4月22日

標準モジュール

次に、標準モジュールについて解説します。

標準モジュールは、自分で処理を作るとき作るモジュールの1つです。ブックモジュール・シートモジュール・フォームモジュールのように、何かが起こった時(シート追加、セルの値変更、ボタンクリック)以外に処理を作りたいときに使うモジュールです。

Excelの操作であればほとんど標準モジュールで作ることができますが、具体的には以下のような処理を作ることができます。


■標準モジュールで作れる処理の例

  • セルの値をコピペする処理
  • グラフを自動で作成する処理
  • レポートを自動で作成する処理

新しく処理を作るときは標準モジュールを作るのが基本です。標準モジュールを使ってマクロを作ったことがない方は、以下を見てみてくださいね!

【ExcelVBA入門】VBAの基礎知識・書き方・おすすめの学習方法を解説
更新日 : 2019年10月1日

クラスモジュール

次に、クラスモジュールについて解説します。

クラスモジュールは、標準モジュールと同じく自分で処理を作れるモジュールです。標準モジュールはどこからでも作った処理を呼び出せますが、クラスモジュールはクラスを宣言してからでないと使えないことが特徴です。

これだけ聞くと標準モジュールよりも使いづらいと思う方もいるかもしれませんが、クラスモジュールを使ったときだけ使える機能もたくさんあります。

クラスモジュールはクラス宣言が最初に必要な分、「クラス宣言をしたときに行う処理」を作ることができます。「クラスAを宣言したときは、設定シートのA1 ~ A5の値を変数にセットしておく」のような、宣言時の処理が作れるため使いこなすととても便利です。

他にも、消費税など変更すると計算がおかしくなってしまうような値に制限をかけて簡単に変更できないようにしたり、便利な機能がたくさんあります。

クラスモジュールの使い方を詳しく知りたい方は、以下がおすすめです!

【ExcelVBA入門】クラスモジュールのメリット・使い方を徹底解説!
更新日 : 2019年3月29日

VBAでモジュールを使いこなすためのプロシージャとは?

ここまで、モジュールの意味や種類について解説してきました。

次に、モジュールを使いこなすための概念「プロシージャ」について解説します。

プロシージャは、モジュールの中に書く1つの機能のかたまりのことです。「ボタンをクリックしたときの処理」「セルの値をコピペする処理」などですね。

プロシージャには、大きくわけて以下の2つがあります。


■プロシージャの種類

  • イベントプロシージャ
  • 標準プロシージャ

それぞれ詳しく解説しますね。

イベントプロシージャとは?

まず、イベントプロシージャについて解説します。

イベントプロシージャとは、イベントが起きたときに動く処理のことです。たとえば、「Excelを起動したとき」「セルの値を変更したとき」「ボタンをクリックしたとき」におこる処理です。

イベントプロシージャは、事前に処理の名前が決まっていることが特徴です。たとえば、先ほどの例で言うと、次のように名前が決まっています。


■イベントプロシージャの例

  • ブックを起動したとき → Workbook_Open
  • セルの値が変更になったとき → Worksheet_Change
  • ボタンをクリックしたとき → ボタンのオブジェクト名_Click

そのため、「どんなイベントが起きたときの処理を作りたいか?」を考えて、その名前を使って処理を書いていくことが基本の流れになります。名前がわからない場合は「VBA イベント ブック起動時」のようにググることで、簡単にイベント名を調べることができます。

このように、おこるイベントありきで処理を作っていくのが、イベントプロシージャです。ブックモジュール、シートモジュール、フォームモジュールのみで使えるので、合わせて覚えておくのがおすすめです!

標準プロシージャとは

次に、標準プロシージャについて解説します。

標準プロシージャは、自分で作った処理のことです。たとえば、「セルの値をコピペする処理」「2つの値を合計する処理」などですね。

どのモジュールで書くこともできますが、イベントプロシージャと混合させると処理がわかりづらくなってしまうので、標準モジュール・クラスモジュールのどちらかに書くことがおすすめです。

「Sub マクロ名() ~ End Sub」「Function 関数名() ~ End Function」のように自分で作っていきます。詳しい作り方は以下で解説しているので、ぜひ見てみてくださいね!

【ExcelVBA】モジュール・プロシージャとは?使い方も徹底解説!
更新日 : 2019年5月4日

まとめ

今回は、VBAのモジュールの意味・種類・使い方について解説しました。

モジュールはVBAを学ぶ上で必須知識なので、違いや使い方を覚えておくことがおすすめです。

最後に解説したプロシージャの意味や使い方まで覚えておくと、学習が加速すると思うので、ぜひ覚えてみてくださいね!

LINEで送る
Pocket

無料でSEからWebエンジニアへ転職しませんか?



侍エンジニア塾では、完全未経験の方から現在SEだけどプログラミングはやっていないという経験者まで、幅広い方々の人生を好転させるプログラミング指導を行ってきました。SEの方とお話していくなかで、

  • システムエンジニアという職業だけどコードが書けない
  • 事務作業が多くスキルがないため将来が不安
  • スクールに通うと完全未経験者と同じスタートになるからレベルが合わない
という、すでに知識があるSEならではのお悩みがあることに気づきました。そんな方におすすめなのが、弊社の「転職コース 」です。

弊社では、マンツーマンでレッスンを行いますので、現在お持ちの知識レベルからカリキュラムを作成いたします。さらにこちらの転職コースは無料で受講を始められて転職成功でそのまま卒業できるというとてもお得なコースとなっています。

既に知識のあるSEといっても転職は年齢が若いほど受かりやすいため、まずは無料体験レッスンで今の現状や理想の働き方について一緒に考えていきましょう。

まずは無料体験レッスンを予約する

書いた人

Sanshiro Wakizaka

Sanshiro Wakizaka

フリーランスエンジニア兼ライターのワキザカ サンシロウです。
ExcelVBAの自動化ツール開発、WEB開発をメインにエンジニア業務をこなしつつ、サムライエンジニアにてライター業務をしております。

プログラミングをこれからやってみたい方に向けて、ためになる記事を全力で書いていきますので宜しくお願い致します!

おすすめコンテンツ

あなたにぴったりなプログラミング学習プランを無料で診断!

プログラミング学習の効率を劇的に上げる学習メソッドを解説