このページの内容について
このページは、VBAエキスパート(ExcelVBAベーシック)試験合格講座の第六回記事です。公式テキスト第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」までのかたまりを指します。
Comment