VisualBasicやVBAで関数プロシージャを呼び出すときに迷いませんか?関数を呼び出すと、"Function "ステートメントの後の最初の実行ファイルから、"End Function"、"Return"、または "Exit Function "が表示されるまで、そのステートメントが実行されます。call文の適切な構文を学び、役に立つ例をいくつかチェックすれば、プログラムのどこからでも関数を呼び出すことが驚くほど簡単になります。このチュートリアルでは、VBとVBAで関数を呼び出す簡単な方法を説明します。
関数の呼び出し構文
-
VBとVBAで関数を呼び出す構文は、lvalue = functionName (argument1, argument2)です。引数が複数ある場合(この例のように)、引数をカンマで区切ります。
- オプションでない引数にはすべて値を指定する必要があります。しかし、引数がない場合は、括弧を省略するか、空白()にすることができます。
- 関数を呼び出すと、そのステートメントはFunctionステートメントの後の最初の実行ステートメントから始まり、End Function、Return、Exit Functionのいずれかに出会うまで実行されます。
- サブルーチンを呼び出す場合とは異なり、関数を呼び出す場合は通常 Call キーワードを使用する必要はありません。 Call キーワードを使用した場合、値は返されません。
- Excelスプレッドシート内のセルでVBAを使用する場合、構文は=functionName(argument1, argument2)です。ExcelのVBエディタでコードを書く場合は、標準の構文を使用します。しかしセル内では、数式を書くときのように等号で呼び出す必要があります。
関数の呼び出しの例
-
この例では、直角三角形の斜辺を求める関数を書きます。そして、その関数を呼び出して、直線の一方が2.3である場合の三角形の斜辺を求めます。
- まず、関数を作りましょう。Function hypotenuse(ByVal side1 As Single, ByVal side2 As Single) As Single Return Math.Sqrt((side1 ^ 2) + (side2 ^ 2)) End Function
- そして、一辺が2.3である場合の関数の呼び出し方である。
Dim testLength, testHypotenuse As Single testHypotenuse = hypotenuse(testLength, 2.3)
- まず、関数を作りましょう。
-
式を使って関数を呼び出すこともできます。この例では、ユーザーにメッセージ・ボックスを表示して入力を受け付けるMsgBox関数を呼び出します。Visual BasicとVBAのMsgBoxには、5つの名前付き引数(prompt、buttons、title、helpfile、context)があります。ここでは2つの引数を渡します。1つはメッセージを表示する引数、もう1つは「はい」と「いいえ」のボタンを表示する引数です:Dim intResponse As Integer intResponse = MsgBox("Are you sure you want to proceed?", vbYesNo) If intResponse = vbYes Then End End If
-
では、2つの数値を足し合わせる関数を作ってみよう。まずAddという関数を書き、その関数を呼び出して32と64を足す。
- まず、関数を以下に示します:関数 Add(ByVal x As Integer, ByVal y As Integer) As Integer Dim Res as integer Res = x + y Add = Res End Function
- では、この関数をサブルーチンで呼び出して、数値を足し算してみましょう:Sub Form_Load() Dim a As Integer Dim b As Integer Dim c As Integer a = 32 b = 64 c = Add(a, b) MsgBox ("Sum is : " & c) End Sub
- まず、関数を以下に示します:
コメント
最新を表示する
NG表示方式
NGID一覧