リストボックスをシートに追加しました(「ユーザーフォーム」ではなく) マウスでこれを行いました。 小さなハンマーとレンチのアイコンをクリックしました。変数名を使用してワークシート上のコントロールオブジェクトを参照するにはどうすればよいですか?
このリストボックスは、簡単にこのようなコードを使用して参照しているように見える。しかし、私は便利、という名前のこれらのリストボックス(ListBox1を、ListBox2の3を持っている
ListBox1.Clear
または
ListBox1.AddItem("An option")
をし、 ListBox3)、このように配列データを設定する関数を作成したいとします。
Call populate_listbox(ListBox2, designAreaArray)
最初の引数がリストボックス名で、2番目がデータです。
しかし、 "ListBox2"を正しく送信する方法、または関数内で正しく参照する方法がわかりません。
例えば:
Sub populate_listbox(LB As ListBox, dataArray As Variant)
Dim i As Integer: i = 0
For i = LBound(dataArray, 2) + 1 To UBound(dataArray, 2) ' Skip header row
LB.AddItem (dataArray(index, i))
Next i
End Sub
を明らかにそれはミスマッチデータ型エラーをもたらす:
Dim controlName as string
controlName = "ListBox1"
は、以下のように、私は関数を定義する場合であっても、動作しません。私はListBoxとして "controlName"を定義しようとしましたが、どちらも動作しませんでした...
おそらくそれは間違っているリストボックスへの私の参照です。私はコントロールオブジェクトを参照するために多くの方法を見てきました...
MSForms.ListBox.
ME.ListBox
Forms.Controls.
Worksheet.Shapes.
リストはオンになり、何も私のために働いていません。
ありがとうございます。私はjustnSの答えごとに私のサブを変更し、上記のように私の変数(cMyListbox)を設定し、その組み合わせが働いた。ヒントを記入していただきありがとうございます。 – Symmitchry
いいえ、それはあなたのために働いてうれしい。 – Reafidy