複数の引数を渡す

他のプロシージャを呼び出す場合に引数として値を渡すことができますが、引数は1つだけではなく複数の引数を渡す事ができます。ここでは Excel VBA でプロシージャを呼び出すときに複数の引数を渡す方法について解説します。

(Last modified: )

複数の引数を渡す

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

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

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

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

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

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

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

サンプルプログラム

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

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 )

Profile
profile_img

著者 / TATSUO IKURA

プログラミングや開発環境構築の解説サイトを運営しています。