VBA プロシージャで値を渡す方法
エクセルVBAのプロシージャで値を渡す方法はどうしたらいいのでしょうか。
たとえば、下記のようなプログラムを書いたとします。
---------------------------------------------
Private Sub test_main()
Dim drink As String
Dim alcohol As String
Call test(cola, beer)
End Sub
Public Sub test_module(ByVal drink As String, ByVal alcohol As String)
Cells(1, 1).Value = drink
Cells(2, 2).Value = alcohol
End Sub
---------------------------------------------
このプログラムはもちろん不完全です。試してみたら動きませんでした。
やりたいことは、メインのプロシージャ(test_main)から、test_moduleを
呼び出し、同時に「cola」と「beer」の値を渡します。呼び出された先で、
エクセルのワークシートのセルに値を入力します。
重複しますが、それぞれの値「cola」と「beer」は変数「drink」と「alcohol」に代入されます。
この変数をcell(1,1)とcell(2,2)に入力します。
ワークシート上のcell(1,1)には「cola」、cell(2,2)には「beer」
と入力されます。
変数は数値ではなく、文字列です。
ポイントは、変数「drink」と「alcohol」をどのプロシージャに宣言するのか
また、変数に値「cola」と「beer」をのどプロシージャでどういうふうに代入するのか。
そして代入した変数をどうやって呼び出したいプロシージャに渡すのかです。
このようなことをするには、上記プログラムをどう書き換えたらよいのでしょうか。