スポンサーリンク

[VBA] プロシージャ呼び出し 【引数・参照渡し・値渡し・デフォルト引数】

[VBA] プロシージャを呼び出す方法

プロシージャ呼び出し

サンプルコード

Sub Main()
    Dim a As Long
    Dim b As Long
    a = 10
    b = 10
    
    Call Test1(a, b)
    
    Debug.Print (a)
    Debug.Print (b)
    
End Sub

Sub Test1(ByVal a As Long, ByRef b As Long)
    a = a + 10
    b = b + 10
End Sub

結果

10
20

プロシージャは、Callで呼び出せます。ちなみに無くても呼び出せますが、Callで明示していたほうが分かりやすいです。
引数は、ByValは値渡し、ByRefは参照渡しとなります。そのため、aの値が10になって、bの値が20になっています。

デフォルト引数

Optionalを使うことで、デフォルト値が設定されている引数となります。
これを使えば、引数に値が指定していなくてもプロシージャを呼び出せます。

サンプルコード

Sub Main()
    
    Call Test1
    
End Sub

Sub Test1(Optional ByVal a As Long = 1)
    Debug.Print (a)
End Sub

結果

1

 

VBA
スポンサーリンク
シェアする
trelab