- ベストアンサー
VBAの引数にコンボボックスと範囲を渡す方法
- Excel2003を使用してフォーム上にコンボボックスを配置し、VBAの引数としてコンボボックスの名前と範囲を渡したい場合、どのように宣言すれば良いでしょうか?
- コンボボックスを引数として受け取る際、ByVal As ComboBoxと宣言します。
- 範囲を引数として受け取る際、ByVal As Rangeと宣言します。また、引数の値を変更する際には、ByRef As Rangeと宣言します。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
>引数?としてコンボボックスの名前を使いたい private sub UserForm_Initialize() call TEST1("Combobox1", "A1") call TEST2(me.combobox1, range("B1")) end sub sub TEST1(byval myName1 as string, byval myName2 as string) me.controls(myname1).additem "A" range(myname2).value = "A" end sub sub TEST2(byval myCtrl as object, byval myRng as excel.range) myctrl.additem "B" myrng.value = "B" end sub
その他の回答 (1)
- eden3616
- ベストアンサー率65% (267/405)
Private Sub UserForm_Initialize() Call TEST2(ComboBox1, Range("A1")) End Sub Sub TEST2(ByVal ComboboxName As Object, ByVal TEST_Range As Range) ComboboxName.AddItem "A" TEST_Range = "テスト" End Sub または Private Sub UserForm_Initialize() Call TEST2(ComboBox1, "A1") End Sub Sub TEST2(ByVal ComboboxName As Object, ByVal TEST_Range As String) ComboboxName.AddItem "A" Range(TEST_Range) = "テスト" End Sub ていう意味で良かったのかな?
お礼
回答ありがとうございます。 まさに、その通りです! 上手くいきました^^ ありがとうございます!
お礼
回答ありがとうございます。 回答を締め切るのを忘れてました・・・すみません。 あぁ、でもこういうやり方があったんですね! TEST1が理想的でした^^ 最初の方には申し訳ないのですが、 ベストアンサーにさせて頂きます。