• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VBA 引数にcombobox,Range)

VBAの引数にコンボボックスと範囲を渡す方法

このQ&Aのポイント
  • Excel2003を使用してフォーム上にコンボボックスを配置し、VBAの引数としてコンボボックスの名前と範囲を渡したい場合、どのように宣言すれば良いでしょうか?
  • コンボボックスを引数として受け取る際、ByVal As ComboBoxと宣言します。
  • 範囲を引数として受け取る際、ByVal As Rangeと宣言します。また、引数の値を変更する際には、ByRef As Rangeと宣言します。

質問者が選んだベストアンサー

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.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

karorumon
質問者

お礼

回答ありがとうございます。 回答を締め切るのを忘れてました・・・すみません。 あぁ、でもこういうやり方があったんですね! TEST1が理想的でした^^ 最初の方には申し訳ないのですが、 ベストアンサーにさせて頂きます。

その他の回答 (1)

  • eden3616
  • ベストアンサー率65% (267/405)
回答No.1

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 ていう意味で良かったのかな?

karorumon
質問者

お礼

回答ありがとうございます。 まさに、その通りです! 上手くいきました^^ ありがとうございます!