このページは、VBAエキスパート(Excel VBA ベーシック)試験の合格を目指す方のための解説記事です。公式テキスト第3章「モジュールとプロシージャ」の内容のうち、モジュールについて取り上げます。
プロシージャとは
ExcelVBAで作成されたプログラムのことを一般にマクロと呼びます。マクロと言ってもユーザーフォームや、Webスクレイピングなどの複雑な処理をするマクロもあれば、シートのデータを削除するだけの単純なマクロもあります。マクロの最も小さい実行単位を「プロシージャ」と呼び、どんなマクロもこのプロシージャの組み合わせで作成されています。
プロシージャの例
下記画像では「M01_Main」というモジュール内に「Main」と「SubProcess」という2つプロシージャがあり、「Public Sub Main()」~「End Sub」まで「Public Function SubProcess() As String」~「End Function」までのそれぞれが一つのプロシージャのかたまりです。

プロシージャの種類
Subプロシージャ
値を返すことができないプロシージャです。このプロシージャはシート上に配置したボタンや、開発タブのマクロから発動することができます。「Sub 〇〇」~「End Sub」までのかたまりを指します。
Functionプロシージャ
呼び出し元に値を返すことができるプロシージャです。このプロシージャはシート上に配置したボタンなどからの発動はできませんが、Excelの関数(SUMとかVLOOKUPとか)と同じようにセル上に記述し呼び出すことができます(ユーザー定義関数)。「Function 〇〇」~「End Function」までのかたまりを指します。
Propertyプロシージャ
よくクラスモジュールで使用するものと説明されていますが、標準モジュールでも使用できます。このあとの解説で登場する「オブジェクト」の要素であるメソッドとプロパティの「プロパティ」にあたる機能を提供するプロシージャです。使いどころは前述の2つのプロシージャとはかなり違います。「Property 〇〇」~「End Property」までのかたまりを指します。
Propertyプロシージャは、他の2つのプロシージャとは一味違った使い方ができる便利なプロシージャであるものの、VBAエキスパート試験の出題範囲ではありませんので、講座ではこれ以上の詳細な解説はしません。

合格講座/第七回:マクロの記録-120x68.png)
Comment