配列を使用してリストとしてスタイル設定されたコンボボックスの ListFillRange プロパティを設定したい VBA プロシージャ (Excel 2007) があります。
コンボボックスを右クリックして、"ListFillRange" プロパティの横に "Sheet1!$F2:$F17" と書き込むと、これが機能することがわかります。コードでこれを行うこともできます。ただし、配列を割り当ててこのプロパティの値を動的に設定することに興味があります。
私がテストしたように、アレイが機能することは確かです。おそらくここに構文エラーがあります:
ThisWorkbook.Worksheets("Sheet1").OLEObjects("cmbS").ListFillRange = ar
これを行うと、「タイプの不一致」エラーが発生します。
このアクションの結果、要素(0)から配列の最後の要素(n-1)までの配列要素がコンポーネントに取り込まれます。任意のポインタ、どうもありがとうございました!
私も試しました:
ThisWorkbook.Worksheets("Sheet1").cmbS.list = ar
「許可が拒否されました」と表示されます
役立つ場合のコンボボックスのプロパティは次のとおりです。
テストして試した後、これが機能することがわかりました:
ThisWorkbook.Worksheets("Sheet1").cmbS.ListFillRange = ""
Dim i As Integer
For i = LBound(ar) To UBound(ar)
ThisWorkbook.Worksheets("Sheet1").cmbS.AddItem (ar(i))
Next
ただし、要素ごとに要素を追加するだけでなく、効果を高めるために一度にすべての値を入力することに興味があります。