- プロジェクト?モジュール?プロシージャ?
- プロシージャ単位とかモジュール単位って聞くけど、そもそもそれが分からない
「プロジェクト」「モジュール」「プロシージャ」はそれぞれVBAでの単位のことです。
大きい順で並べるとプロジェクト>モジュール>プロシージャとなります。
この記事では、以下について解説しています。
- VBAにおける単位とは何か
- それぞれの概要
別の解説を見ても用語でつまづいてしまう初心者さんには特におすすめの内容となっています。
VBAにおける単位とは?
VBAにおける単位とは、あるコードのグループのことを指しています。
「りんご・ぶどう・もも」のグループで、「フルーツ」という単位であるように、「コード~コード」のグループ、その塊をまとめたグループでそれぞれ単位が存在します。
知識になるので、コーディング力などには直結しませんが、今後の各関数などを理解するときや開発をしていく際に必要になるので、ぜひマスターしてください。
「プロジェクト>モジュール>プロシージャ」の意味
タイトルにもある「プロジェクト>モジュール>プロシージャ」の意味ですが、これはそれぞれの単位を大きさ順に並べたものになります。
最小単位がプロシージャです。これが集まると1つのモジュールになり、複数のモジュールで構成されるのが1プロジェクトということになります。
それぞれの用語のつながりはイメージできましたか?
ここからは各用語について解説していきます。
プロジェクトとは?
プロジェクトとは、システムとイコールになる存在です。
ExcelVBAで言うと、Excelファイル自体になります。
ですので、プロジェクトは必ず1つだけ存在することになります。
正直、深く覚えなくてもいい用語です。
プロジェクト=システム自体=(ExcelVBAの場合)Excelファイル自体とだけ覚えておきましょう。
モジュールとは?
モジュールとは、最小単位であるプロシージャをまとめた単位、つまり、複数の処理をまとめた塊になります。
プログラミングでは、処理を分割して記述したほうがメンテナンスしやすく、分かりやすく・見やすくなります。
- ユーザーにファイルを選択させて、そのファイルパスを取得する
- Excelを開いて、データを取得する
- データをAccessに格納する
- Accessからデータを取得する
- データを加工してCSVとして出力する
など、それぞれの処理で役割分担をしています。
この、各処理をまとめたのがモジュールです。
「加工処理」「データ取得処理」などの処理をまとめたモジュールは、モジュール自体がどんな役割を持っているかが一目でわかるようになります。
ただし、書き方によるので書き方にルールを決めなければごちゃごちゃになってしまいます。
モジュールには複数種類があり、それぞれ特性が異なります。
詳しくは以下の記事で解説しています。
【モジュールとは?】VBAのモジュール(Module)って何?種類・内容を解説!
プロシージャとは?
プロシージャはVBAでの最小単位です。また、プロシージャは処理自体を指しています。
VBAでは、「Sub~End Sub」か「Function~End Function」の塊が1処理になります。
そして、この1処理をプロシージャと言います。
先述しましたが、プロシージャには2種類あり、それぞれ「Subプロシージャ」「Functionプロシージャ」と呼びます。
また、これらは関数と呼ばれることもあります。
それぞれ解説していきます。
Subプロシージャ
通常の処理です。
Functionプロシージャとの違いは、呼び出したら処理をしてくれるという点です。
もちろん、Functionプロシージャも処理はしてくれますが、ちょっと使いどころが異なります。
- ファイルを開く
- Excelを保存する
- メッセージボックスを表示する」
など、処理の中身は様々です。
Functionプロシージャ
戻り値がある処理です。
例えば、以下のようなFunctionプロシージャがあった場合、
Function myName() As String myName = "らるじゅ" End Function
呼び出す場合は以下のようになります。
Sub Test() Dim MSG As String MSG = myName End Sub
myName
というFunctionプロシージャの戻り値をMSG
という変数に格納する形で呼び出しています。
また、Functionプロシージャでは、プロシージャ自体に値を代入しています。(myName="らるじゅ"
の部分)
これが、戻り値を設定している部分です。
Functionプロシージャでは、戻り値が必須になるため、
- 処理をした後にうまくいったか判定したい
- この文字に特定の文字を結合してほしい
などの、結果や加工後の値が欲しいときに使用されることが多いです。
また、Functionプロシージャでは、ワークシート関数(Excel上で使うSUMなどの関数)を作成することも可能です。
詳しくは別記事で解説します。
少し長くなりましたが、プロシージャは1つの処理と同じ単位という認識でOKです。
まとめ|VBAでの単位!これを覚えて理解度UP!
今回は、VBAでの単位でもある「プロジェクト・モジュール・プロシージャ」について解説しました。
今後、この用語を使った解説も増えてくるのでポイントを押さえておいてください。
プログラミングにおいて、コードを書くことが一番重要ですが、エラーや機能を理解するためにも用語を把握しておくことが学習をスムーズに進めるための秘訣でもあります。
そもそもこれ何だっけ?
という手戻りをなくすためにも、少しずつ確実に進んでいきましょう。