• ベストアンサー

引数にコントロール名を使用したい2

以前同じようなタイトルで質問したのですが、別のところで 引数にコントロール名を使用したくなったので、改めて質問 させてもらいます。 複数のコンボボックスがあり、下記のような感じでリスト作成部分を サブルーチンにしたいと思っています。 可能でしょうか? リスト作成(コンボボックス名) Sub リスト作成(コントロール名) With Sheets("Sheet1").コントロール名 .ListFillRange ("マスタ!E2:E3") End With End Sub ちなみに、上記コードを実行すると、 「実行時エラー'438': オブジェクトは、このプロパティまたはメソッドをサポートしていません。」 と表示されます。

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

  • ベストアンサー
  • taocat
  • ベストアンサー率61% (191/310)
回答No.3

再度の登場、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を実行する。 以上です。

level30
質問者

お礼

ありがとうございます。 参考になりました。 結局、「.ListFillRange = "マスタ!E2:E3"」に変更するのと、 「With コントロール名」とすることで動作しました。 「With Sheets("Sheet1").コントロール名」という指定は できないのでしょうね。

その他の回答 (3)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.4

下記ではダメですか. やり方がはじめから別ですが。 コンボボックスを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)
回答No.2

Wendy02 です。 確か、これは、コントロールツール側のコントロールでしたね。 リスト作成 コンボボックス名  '括弧はつけないこと。 Sub リスト作成(コントロール名) With Sheets("Sheet1").Shapes(コントロール名).DrawingObject   .ListFillRange = "マスタ!E2:E3" End With End Sub

  • taocat
  • ベストアンサー率61% (191/310)
回答No.1

こんにちは .ListFillRange ("マスタ!E2:E3") は .ListFillRange = "マスタ!E2:E3" ではありませぬか? 以上です。

関連するQ&A