9.プロシージャ              [もくじへ] [トップページへ]

9.1 プロシージャとは

ある機能単位をひとかたまりにして、その名前で呼び出しが行えるように

したプログラムをプロシージャといいます。

プロシージャは、同じ処理を何度も使う場合や、一度作成した複雑なプロ

グラムを再利用するのに便利です。例えば、組み込み関数にない関数を

プロシージャとして作り、組み込み関数と同じように使用することができま

す。また、一度プロシージャを作っておけば、別のプログラムにもほとんど

変更することなくコピーして使用することができます。

VBScript のプロシージャには、サブルーチンプロシージャと関数プロシー

ジャがあります。

 


9.2 サブルーチンプロシージャ     [もくじへ] [トップページへ]

===================================================

プログラム例題14

次の5つのデータを小数第3位を四捨五入して、小数第2位に丸めて

表示せよ。

62.546, 62.533, 62.545, 62.548, 62.544

=========================================================

<HTML>
<HEAD>
   <TITLE>例題14</TITLE>

<SCRIPT LANGUAGE="VBScript">
<!--
        
Sub Marume( s )
                
dim d
                
d = int( s*100 + 0.5)/100
                
document.write "データ = ", s, " 結果 = ", d, "<BR>"
        
End Sub
-->
</SCRIPT>

</HEAD>
<BODY>

<SCRIPT LANGUAGE="VBScript">
<!--
        dim a(5)
        dim i

'   入力データ
        a(1) =
62.546
        
a(2) = 62.533
        
a(3) = 62.545
        
a(4) = 62.548
        
a(5) = 62.544

'   サブルーチンプロシージャの呼び出し

        document.write "<BR>"
        
For i = 1 to 5
                
Marume a(i)
        
Next
-->
</SCRIPT>

</BODY>
</HTML>

 

実行結果は、次のようになります。

データ = 62.546 結果 = 62.55
データ = 62.533 結果 = 62.53
データ = 62.545 結果 = 62.55
データ = 62.548 結果 = 62.55

VBScript はプログラムの先頭から読み込まれるため、プロシージャは

通常 <HEAD> </HEAD> 内に記述します。

Sub Marume( s )
        
dim d
        
d = int( s*100 + 0.5)/100
        
document.write "データ = ", s, " 結果 = ", d, "<BR>"
End Sub

Marume という名前のサブルーチンプロシージャです。( )内の変数 s

仮引数(ひきすう)といわれるもので、呼び出し側で Marume x と書くと、 x

の値が s に渡されます。そして、丸めた値 d を表示して End Sub で呼び出

し側に戻ります。呼び出し側の引数を実引数といいます。

サブルーチンプロシージャは、このように引数を書く場合と、何も引数を書か

ない場合があります。

引数を書かない場合でも、プロシージャ側では Sub Test( ) のように、( )

付けなければなりません。

For i = 1 to 5
        
Marume a(i)
Next

a(i) の値を5回ループさせながら、サブルーチンプロシージャ Marume を呼

び出して四捨五入します。

 


9.3 関数プロシージャ          [もくじへ] [トップページへ]

===================================================

プログラム例題15

次の5つのデータを配列変数 a に代入し、小数第3位を四捨五入して

から、ふたたび配列変数 a に求め表示せよ。

62.546, 62.533, 62.545, 62.548, 62.544

=========================================================

<HTML>
<HEAD>
   <TITLE>例題15</TITLE>

<SCRIPT LANGUAGE="VBScript">
<!--
        
Function Marume( s )
                
dim d
                
d = int( s*100 + 0.5)/100
                
Marume = d
        
End Function
-->
</SCRIPT>

</HEAD>
<BODY>

<SCRIPT LANGUAGE="VBScript">
<!--
        dim a(5)
        dim i

'   入力データ
        a(1) =
62.546
        
a(2) = 62.533
        
a(3) = 62.545
        
a(4) = 62.548
        
a(5) = 62.544

'   関数プロシージャの呼び出し
        
document.write "<BR>"
        
For i = 1 to 5
'
'      四捨五入の前
                
document.write "データ = ", a(i)
'
                
a(i) = Marume(a(i))
'
'      四捨五入の後
                
document.write " 結果 = ", a(i), "<BR>"
        
Next

-->
</SCRIPT>

</BODY>
</HTML>

 

実行結果は、次のようになります。

データ = 62.546 結果 = 62.55
データ = 62.533 結果 = 62.53
データ = 62.545 結果 = 62.55
データ = 62.548 結果 = 62.55

 

Function Marume( s )
        
dim d
        
d = int( s*100 + 0.5)/100
        
Marume = d
End Function

Marume という名前の関数プロシージャです。( )内の仮引数 s に、呼び出

し側の引数の値が渡され、 Marume = d で計算結果が返されます。サブル

ーチンプロシージャと関数プロシージャの大きな違いはこの点です。計算結果

を返せるのが関数プロシージャ、返せないのがサブルーチンプロシージャと覚

えておけばいいでしょう。また、関数プロシージャの終わりは、End Function

です。

a(i) = Marume(a(i))

関数プロシージャで計算された結果は、Marume(a(i)) が持っています。その

値を再び a(i) に代入します。この文だけで、配列変数 a の値が、四捨五入

されるわけです。

ここで、サブルーチンプロシージャと関数プロシージャの使い方を復習してお

きます。

 

 

 


[もくじへ] [トップページへ] [次ページへ]