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


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

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

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

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

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

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

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

VBAのモジュールとは?

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

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

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


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

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

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

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

VBAのモジュールの種類

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

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


■VBAのモジュールの種類

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

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

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

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

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

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

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

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

フォームモジュール

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

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


請求データ登録画面

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

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

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

標準モジュール

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

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

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


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

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

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

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

クラスモジュール

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

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

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

クラスモジュールはクラス宣言が最初に必要な分、「クラス宣言をしたときに行う処理」を作ることができます。「クラス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を学ぶ上で必須知識なので、違いや使い方を覚えておくことがおすすめです。

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

Excel VBAを最短で習得したい方へ

元々ITリテラシーの高い方やプログラムの学び方がわかっている方であれば、この記事通りに進めていけば、Excel VBAを独学で習得することができるでしょう。

ただし、実際の学習期間中はつまづいている時間がほとんどです。

「なかなかやり遂げられ無い、挫折してしまった」
「時間が足りない」
「情報が少なくどう調べればいいかわからない」
「エラーを解決することができない」

このような悩みを抱えている方も少なく無いと思います。

  • もう挫折したくない
  • 本業と両立しながら、好きな時間で自分のペースで勉強を続けていきたい
  • 自分だけのカリキュラムで効率的に勉強したい
そんな方はお気軽に侍エンジニア塾までご相談ください。

お一人お一人に専属のインストラクターがつくので、より深くExcel VBAについて学習することできます。

まずは『無料体験レッスン』で、弊社のコンサルタントと一緒にあなた専用の学習方やカリキュラムを考えてみませんか?

Excel VBAならではの学習方法や、現役エンジニアから貴重なアドバイスを受けることができます。

詳しくは下の画像をクリックして弊社サービス内容をご確認ください。

cta2_vba2

LINEで送る
Pocket

書いた人

Sanshiro Wakizaka

Sanshiro Wakizaka

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

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

おすすめコンテンツ

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

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