スポンサードリンク

Access VBA Functionプロシージャの解説。

VBA のヘルプには Functionプロシージャ の詳しい説明や使用例が書かれています。

今回はヘルプを見ながら、前回作成した Functionプロシージャ について説明します。ヘルプを表示するには、Access で VBEを起動し、キーワード上で「F1キー」を押してください。

access-vba-92.gif


■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プロシージャの呼び出し部分を、戻り値に置き換えて考えると、納得できると思います。


スポンサードリンク






Access VBA 初心者入門講座 TOPへ