要点まとめ
Excel VBAでは、プロシージャ(Sub)に複数の値を渡すことができる。渡す値は「引数」と呼ばれ、カンマで区切って並べる。受け取る側のプロシージャでは、渡される引数の数だけ変数を宣言しておく必要がある。
基本の考え方
- 引数は複数渡せる
Call プロシージャ名(値1, 値2, ...)のようにカンマで区切る。Callを省略してプロシージャ名 値1, 値2, ...と書くことも可能。 - 受け取る側の書き方
Sub プロシージャ名(ByVal 変数1 As データ型1, ByVal 変数2 As データ型2, ...)
VB引数ごとに変数を宣言する
データ型は同じでなくてもよい(文字列と数値を混ぜてもOK)
サンプルコード
Sub Test()
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
VBこのコードの動き
TestプロシージャからsetCellValueを呼び出すときに、- 1つ目の引数:文字列
"こんにちは" - 2つ目の引数:数値
2
を渡している。
- 1つ目の引数:文字列
setCellValue側では、文字列を2回繰り返して結合し、セルA1に表示。- 結果 → セルA1に「こんにちはこんにちは」と表示される。
初心者へのポイント
- 複数の情報をまとめて渡せるので、処理を柔軟にできる。
- 引数の型は自由に組み合わせられる。
- カンマで区切るだけなので、難しく考えなくてよい。
- 実際に「文字列+回数」などを渡してみると理解しやすい。
つまり、「プロシージャに複数の値を渡す → 受け取って処理する」という流れを覚えることが、VBAの基礎ステップになります。
