教えて!ExcelVBA!

ExcelVBAの基礎知識・書き方について紹介します。

【ExcelVBA 基本操作】プロシージャについて教えて!

プロシージャとは、一連のコードをグループ化し、名前を付けて実行できるようにするものです。プロシージャは、Excelシート上のボタンやメニューなどのコントロールから呼び出すことができます。プロシージャは、SubプロシージャとFunctionプロシージャの2種類があります。

プロシージャの種類

Subプロシージャ

Subプロシージャは、Excel VBAの中で最も基本的なプロシージャです。Subプロシージャは、何らかの処理を実行するために使用されます。例えば、ボタンをクリックした時に処理を実行するためにSubプロシージャを使用することができます。Subプロシージャは、以下のように宣言されます。

Sub プロシージャ名()
 '処理の内容を記述する
End Sub

Subプロシージャは、関数のように値を返すことはできませんが、引数を受け取ることができます。引数を受け取る場合は、以下のように記述します。

Sub プロシージャ名(引数1 As データ型, 引数2 As データ型, ...)
 '処理の内容を記述する
End Sub

引数は省略することもできます。引数を受け取る場合は、呼び出し側から引数を指定してSubプロシージャを呼び出します。

Functionプロシージャ

Functionプロシージャは、Subプロシージャと同様に処理を実行するために使用されますが、Subプロシージャとは異なり、値を返すことができます。Functionプロシージャは、以下のように宣言されます。

Function プロシージャ名() As データ型
 '処理の内容を記述する
 '返す値を指定する
End Function

Functionプロシージャは、引数を受け取ることができます。引数を受け取る場合は、以下のように記述します。

Function プロシージャ名(引数1 As データ型, 引数2 As データ型, ...) As データ型
 '処理の内容を記述する
 '返す値を指定する
End Function

Functionプロシージャは、呼び出し側から引数を指定して呼び出します。返す値は、Functionプロシージャの処理の最後に指定されます。

まとめ

SubプロシージャとFunctionプロシージャは、それぞれの特徴や使い方を理解することで、Excel VBAでより複雑な処理や自動化を行うことができます。

SubプロシージャとFunctionプロシージャの違いは、主に返す値の有無です。Subプロシージャは値を返すことができませんが、Functionプロシージャは値を返すことができます。これは、Subプロシージャが何らかの処理を実行するだけで、返す値が必要ない場合に使用され、Functionプロシージャが何らかの処理を実行して値を返す必要がある場合に使用されるということです。

SubプロシージャやFunctionプロシージャには、他のプログラミング言語における関数やメソッドに相当する機能があります。例えば、引数を受け取ることができるため、引数によって処理を変えることができます。また、SubプロシージャやFunctionプロシージャ内で変数を使用することができるため、一時的な変数を使用して処理を行うことができます。