プロが教える店舗&オフィスのセキュリティ対策術

以前同じようなタイトルで質問したのですが、別のところで
引数にコントロール名を使用したくなったので、改めて質問
させてもらいます。

複数のコンボボックスがあり、下記のような感じでリスト作成部分を
サブルーチンにしたいと思っています。

可能でしょうか?


リスト作成(コンボボックス名)

Sub リスト作成(コントロール名)
With Sheets("Sheet1").コントロール名
.ListFillRange ("マスタ!E2:E3")
End With
End Sub

ちなみに、上記コードを実行すると、
「実行時エラー'438':
オブジェクトは、このプロパティまたはメソッドをサポートしていません。」
と表示されます。

A 回答 (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を実行する。

以上です。
    • good
    • 0
この回答へのお礼

ありがとうございます。
参考になりました。

結局、「.ListFillRange = "マスタ!E2:E3"」に変更するのと、
「With コントロール名」とすることで動作しました。

「With Sheets("Sheet1").コントロール名」という指定は
できないのでしょうね。

お礼日時:2005/06/24 23:24

下記ではダメですか.


やり方がはじめから別ですが。
コンボボックスを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の内容が
コンボに出ます。
    • good
    • 0

Wendy02 です。



確か、これは、コントロールツール側のコントロールでしたね。

リスト作成 コンボボックス名  '括弧はつけないこと。

Sub リスト作成(コントロール名)
With Sheets("Sheet1").Shapes(コントロール名).DrawingObject
  .ListFillRange = "マスタ!E2:E3"
End With
End Sub
    • good
    • 0

こんにちは



.ListFillRange ("マスタ!E2:E3")



.ListFillRange = "マスタ!E2:E3"

ではありませぬか?

以上です。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!