要点まとめ
Excel VBAの「Functionプロシージャ」は、値を返すことができる特別なプロシージャで、処理結果を呼び出し元に渡せる点が特徴です。Subプロシージャとの違いは「戻り値があるかどうか」です。
初心者向けポイント
- Functionプロシージャとは?
- Subプロシージャは「処理を実行するだけ」
- Functionプロシージャは「処理を実行して結果を返す」
- つまり「自作の関数」を作れるイメージ
- 定義の書き方
Function 関数名(引数 As データ型) As 戻り値の型
'処理内容
関数名 = 戻り値
End Function
VBAs 戻り値の型 を書くことで、返す値の種類を指定する
最後に 関数名 = 値 と書くと、その値が戻り値になる
- 具体例(点数を判定する関数)
Function hantei(ByVal tokuten As Integer) As String
Dim kekka As String
If tokuten >= 80 Then
kekka = "合格"
Else
kekka = "不合格"
End If
hantei = kekka
End Function
VB80点以上なら「合格」、それ以外は「不合格」を返す
- 呼び出し方
Sub テスト()
Dim kekka As String
kekka = hantei(75) ' → 「不合格」が返る
Range("A1").Value = kekka
End Sub
VB関数を呼び出すと、その結果を変数に代入したり、セルに書き込める
初心者へのアドバイス
- 「戻り値を返す」ことがFunctionの最大の特徴
- Excelのセル関数と同じように、自分専用の関数を作れる
- 小さな処理を関数にまとめると、コードが読みやすく再利用しやすくなる
要するに、「処理結果を返す仕組みがFunctionプロシージャ」であり、初心者は「Subは処理だけ」「Functionは処理+結果を返す」と覚えると理解しやすいです。
