プロシージャとは、一連のコードをグループ化し、名前を付けて実行できるようにするものです。プロシージャは、Excelシート上のボタンやメニューなどのコントロールから呼び出すことができます。プロシージャは、SubプロシージャとFunctionプロシージャの2種類があります。
プロシージャの種類
Subプロシージャ
Subプロシージャは、Excel VBAの中で最も基本的なプロシージャです。Subプロシージャは、何らかの処理を実行するために使用されます。例えば、ボタンをクリックした時に処理を実行するためにSubプロシージャを使用することができます。Subプロシージャは、以下のように宣言されます。
'処理の内容を記述する
End Sub
Subプロシージャは、関数のように値を返すことはできませんが、引数を受け取ることができます。引数を受け取る場合は、以下のように記述します。
'処理の内容を記述する
End Sub
引数は省略することもできます。引数を受け取る場合は、呼び出し側から引数を指定してSubプロシージャを呼び出します。
Functionプロシージャ
Functionプロシージャは、Subプロシージャと同様に処理を実行するために使用されますが、Subプロシージャとは異なり、値を返すことができます。Functionプロシージャは、以下のように宣言されます。
'処理の内容を記述する
'返す値を指定する
End Function
Functionプロシージャは、引数を受け取ることができます。引数を受け取る場合は、以下のように記述します。
'処理の内容を記述する
'返す値を指定する
End Function
Functionプロシージャは、呼び出し側から引数を指定して呼び出します。返す値は、Functionプロシージャの処理の最後に指定されます。
まとめ
SubプロシージャとFunctionプロシージャは、それぞれの特徴や使い方を理解することで、Excel VBAでより複雑な処理や自動化を行うことができます。
SubプロシージャとFunctionプロシージャの違いは、主に返す値の有無です。Subプロシージャは値を返すことができませんが、Functionプロシージャは値を返すことができます。これは、Subプロシージャが何らかの処理を実行するだけで、返す値が必要ない場合に使用され、Functionプロシージャが何らかの処理を実行して値を返す必要がある場合に使用されるということです。
SubプロシージャやFunctionプロシージャには、他のプログラミング言語における関数やメソッドに相当する機能があります。例えば、引数を受け取ることができるため、引数によって処理を変えることができます。また、SubプロシージャやFunctionプロシージャ内で変数を使用することができるため、一時的な変数を使用して処理を行うことができます。