今回はヘルプを見ながら、前回作成した Functionプロシージャ について説明します。ヘルプを表示するには、Access で VBEを起動し、キーワード上で「F1キー」を押してください。
■Functionプロシージャ側
(1)Functionプロシージャの構文は以下のようになっています。
Function name (arglist) As type
name = expression
End Function
・name Functionプロシージャの名前
・arglist 引数のリスト 複数ある時は「,」カンマで区切る
・type 戻り値のデータ型を指定
・expression Functionプロシージャの戻り値を指定
省略しているものもありますが、基本的にはこれだけで大丈夫です。
もっと詳しく知りたい場合は、 Microsoft Visual Basic のヘルプをご覧ください。
(2)上記の構文を踏まえて、独自に定義した calc() を見てみましょう。
Function calc(a As Integer, b As Integer) As Integer
calc = a + b
End Function
・calcという名前である
・整数型の a、b 2つの引数を受け取る
・aとbを足した値が戻り値になる
・整数型の戻り値を返す
*Functionプロシージャの名前に代入した値が戻り値になります。
■Subプロシージャ側
Functionプロシージャ を呼び出すための Subプロシージャ を用意しました。呼び出し方を少し変えたものを2つ作ってみました。違いに注目してください。
(1)Functionプロシージャは引数を指定して呼び出します。
calc(1, 2)
*Functionプロシージャ側の引数リストと一致させます。(順番、数、データ型)
*引数が無い場合もあります。
(2)戻り値を変数で受け取って、変数をメッセージボックスの引数にする方法
Sub main()
Dim ans As Integer
ans = calc(1, 2)
MsgBox ans
End Sub
・Dim で 整数型の ans という変数を宣言
・変数 ans で Functionプロシージャの戻り値を受け取る。
・メッセージボックスの引数に、変数 ans を指定
(3)メッセージボックスの引数に、直接 Functionプロシージャを指定する方法
Sub main2()
MsgBox calc(10, 20)
End Sub
最終的に Functionプロシージャ は戻り値を返すので、以下のようにイメージするとわかりやすいです。
MsgBox calc(10, 20)
↓
MsgBox 30
Functionプロシージャの呼び出し部分を、戻り値に置き換えて考えると、納得できると思います。