- ベストアンサー
引数にコントロール名を使用したい2
以前同じようなタイトルで質問したのですが、別のところで 引数にコントロール名を使用したくなったので、改めて質問 させてもらいます。 複数のコンボボックスがあり、下記のような感じでリスト作成部分を サブルーチンにしたいと思っています。 可能でしょうか? リスト作成(コンボボックス名) Sub リスト作成(コントロール名) With Sheets("Sheet1").コントロール名 .ListFillRange ("マスタ!E2:E3") End With End Sub ちなみに、上記コードを実行すると、 「実行時エラー'438': オブジェクトは、このプロパティまたはメソッドをサポートしていません。」 と表示されます。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
再度の登場、No.1です。 新しいブックで下記を試してみて下さい。 Sheet1 に ComboBox1, ComboBox2 を配置 ComboBox1.ListfillRange は Sheet2!E2:E5 ComboBox2.ListfillRange は Sheet2!F2:F8 として、標準モジュールに以下のコード ----------------------------------------------- Sub Test() With Sheets("Sheet1") Call リスト作成(.ComboBox1, "Sheet2!E2:E5") Call リスト作成(.ComboBox2, "Sheet2!F2:F8") End With End Sub ------------------------------------------------- Sub リスト作成(myCombo As ComboBox, Area As String) myCombo.ListFillRange = Area End Sub ------------------------------------------------- Testを実行する。 以上です。
その他の回答 (3)
- imogasi
- ベストアンサー率27% (4737/17069)
下記ではダメですか. やり方がはじめから別ですが。 コンボボックスを1つ貼り付け 2つボタンを貼り付け シートL3:L7とN3:N8にリストに表示する内容を入れておく。 rivate Sub CommandButton1_Click() Worksheets("sheet3").ComboBox1.ListFillRange = "L3:L7" End Sub Private Sub CommandButton2_Click() Worksheets("sheet3").ComboBox1.ListFillRange = "N3:N8" End Sub ボタン1をクリックしてコンボをクリックすればL3:L7、 ボタン2をクリックしてコンボをクリックするとN3:N8の内容が コンボに出ます。
- Wendy02
- ベストアンサー率57% (3570/6232)
Wendy02 です。 確か、これは、コントロールツール側のコントロールでしたね。 リスト作成 コンボボックス名 '括弧はつけないこと。 Sub リスト作成(コントロール名) With Sheets("Sheet1").Shapes(コントロール名).DrawingObject .ListFillRange = "マスタ!E2:E3" End With End Sub
- taocat
- ベストアンサー率61% (191/310)
こんにちは .ListFillRange ("マスタ!E2:E3") は .ListFillRange = "マスタ!E2:E3" ではありませぬか? 以上です。
お礼
ありがとうございます。 参考になりました。 結局、「.ListFillRange = "マスタ!E2:E3"」に変更するのと、 「With コントロール名」とすることで動作しました。 「With Sheets("Sheet1").コントロール名」という指定は できないのでしょうね。