複数の引数を渡す

広告

他のプロシージャを呼び出す場合に引数として値を渡す事ができることは前のページで確認しましたが、引数は1つだけではなく複数の引数を渡す事ができます。

複数の値を引数としてプロシージャに渡す場合には、引数の箇所にカンマ(,)で区切って並べて記述します。

Call プロシージャ名(値1, 値2, ...)

※「Call」を使わない場合は次のようになります。

プロシージャ名 値1, 値2, ...

値を受け取る側でも同じように渡されてくるはずの引数の数だけ変数を宣言しておきます。変数と変数の間はカンマ(,)で区切ります。

Sub プロシージャ名(ByRef 変数名1 As データ型1, ByRef 変数名2 As データ型2, ...)

引数は全て同じデータ型である必要はありませんので、色々なデータ型の値を同時に別のプロシージャに渡すことが可能です。

サンプルプログラム

では簡単なサンプルで試してみます。

testsub3.bas

Sub テスト()
    Dim str As String

    str = "こんにちは"
    Call setCellValue(str, 2)

End Sub

Sub setCellValue(ByVal str As String, ByVal count As Integer)
    Dim dispStr As String
    Dim i As Integer
    
    For i = 1 To count
        dispStr = dispStr & str
    Next i
    
    Range("A1").Value = dispStr

End Sub

上記のマクロを実行すると次のようになります。

複数の引数の指定

今回のサンプルでは最初に引数に表示したい文字列を、2番目の引数に繰り返す回数を指定しています。

Excel VBA入門の他の記事を見てみる

( Written by Tatsuo Ikura )