ユーザー定義関数

 プログラムを作成していくと、何度も同じ記述をすることがあります。
このような時はユーザー定義関数として1つの処理にまとめるとソースが解析しやすくなり、修正も簡単に行えるようになります。
ここではSubプロシージャとFunctionプロシージャを使ったサンプルを紹介します。

Subプロシージャを使うと処理のまとまりに名前をつけてスクリプトから呼び出すことができます。
Functionプロシージャも同様にまとまった処理を定義できますが、Functionプロシージャは値を返す事ができます。

sub

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<%
'パラメータの無い関数
Sub disp_err_message()
  Response.Write "<p>エラーが発生しました。</p>"
End Sub

disp_err_message()

'パラメータのある関数
Sub disp_err_message2(val)
Response.Write "<p>" & val & "</p>"
End Sub

disp_err_message2("エラーが発生しました。")
'パラメータを関数に渡して処理する時は、カッコの中にパラメータをつけて定義し
'呼び出す時にパラメータを指定して処理します。
%>

Function

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<%@ Language=VBScript %>
<html>
<head>
<title>ユーザー定義関数を使用する</title>
</head>
<body>
<%

'値を返す関数
Function disp_err_message(val)

  disp_err_message = ""

  If val <> "" then
    disp_err_message = "エラーです。"
  Else
    disp_err_message = "エラーはありません。"
  End If

End Function

Response.Write disp_err_message("エラー")

%>
</body>
</html>

ユーザー定義関数を呼び出す
Call を使用することで、カッコ内に複数の引数を渡すことができます。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<%@ Language=VBScript %>
<html>
<head>
<title>ユーザー定義関数を使用する</title>
</head>
<body>
<%

Function disp_keisan(val,str)

  If IsNumeric(val) and IsNumeric(str) then
    Response.Write val * str
  Else
    Response.Write 0
  End If

End Function

'どちらも同じ結果になります。
'Callを使用すると括弧が使用できます。

'例1
Call disp_keisan(10,20)

'例2
disp_keisan val,str

%>
</body>
</html>

関連ページ