EXCEL VBA - Sub と Function

プロシージャとは

VBA では、プログラムをプロシージャと呼ばれる単位で実行されます。プロシージャには Sub および Function があります。それぞれのプロシージャには識別するためのプロシージャ名を記述する必要があります。

プロシージャ名はアルファベット、数字、アンダーバー、ひらがな、漢字が使えます。ただし、プロシージャ名の先頭の文字はアルファベット、ひらがな、漢字から始まる必要があります。

Sub プロシージャ

Sub プロシージャは、Sub プロシージャ名() で始まり、End Sub で終わります。

Sub Sample()
    ...
End Sub
Sub プロシージャ
Sub プロシージャ
Sub プロシージャ

モジュール内にプロシージャは、いくつも定義することができます。

Sub プロシージャ
Sub プロシージャ

プログラムを実行する場合、作成したプロシージャが表示されます。実行したいプロシージャを選択して実行すると、選択されたプロシージャが呼び出されます。

Sub プロシージャ
Sub プロシージャ

Function プロシージャ

Function プロシージャは、Function プロシージャ名() で始まり、End Function で終わります。Function プロシージャは、Sub プロシージャとは異なり、呼び出し元に値を返すことができます。Function プロシージャの構文は以下のとおりです。

Function プロシージャ名(引数 As データ型) As 戻り値のデータ型
    プロシージャ名 = 戻り値
End Function
Function プロシージャ

例えば、受け取った引数を加算して返す Function プロシージャは、以下のとおりになります。

Function add(ByVal a As Integer, ByVal b As Integer) As Integer
    add = a + b
End Function
Function プロシージャ

呼び出し元は、Function プロシージャから返ってくる値を受け取るように記述します。以下の例では、main プロシージャ内から add プロシージャを呼び出しています。add プロシージャで2つの引数の値が加算されて呼び出し元に返しています。返ってきた値は result に格納されます。

Function add(ByVal a As Integer, ByVal b As Integer) As Integer
    add = a + b
End Function

Sub main()
    Dim result As Integer
    result = add(2, 3)
End Sub
Function プロシージャ
Function プロシージャ
Function プロシージャ
0
SHARE
Twitter
@murashun
お問い合わせ
murashun@gmail.com
ご質問(マシュマロ)
https://marshmallow-qa.com/murashun
ご支援(Stripe)
https://checkout.stripe.com/