• ベストアンサー

Excel コンボボックスの値参照

シート上に配置したコンボボックスの選択されている値を マクロの中で参照するにはどうすればよいのでしょうか?

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

  • ベストアンサー
  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.5

>このままのコードを実行するとDropDowns()が定義されてないとエラーになってしまいます。 どんなエラーかよくわかりませんが、少し追記すると、 まず、『ドロップ 1』はコンボボックスの名前です。新規に作成すると名前ボックス(シートの左上)に表示されます。 コンボボックスに別名を付けている場合はそれに変更します。 次に、  Sub Test1()    With DropDowns("ドロップ 1")      MsgBox .ListIndex    End With  End Sub は、Sheet1にコンボボックスがあって、Sheet1のコードウインドウに書く例です。 Sheet1にコンボボックスがあって、標準モジュールに書く場合は、  Sub TestMoj1()    With Worksheets("Sheet1").DropDowns("ドロップ 1")      MsgBox .ListIndex      MsgBox .List(.ListIndex)   End With  End Sub のようにします。多分メッセージボックスが出ると思いますが・・・(Excel97で確認)

smatsuz
質問者

お礼

標準モジュールに書いていたのにシートの指定を記述していなかったのが原因でした。 おかげで助かりました、ありがとうございました。

その他の回答 (4)

  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.4

表示 → ツールバー → フォーム のコンボボックスなら Sub Test1()   With DropDowns("ドロップ 1")     MsgBox .ListIndex '何番目か(1から)     MsgBox .List(.ListIndex) 'リスト   End With End Sub 表示 → ツールバー → コントロールツールボックス のコンボボックスなら Sub Test2()   With ComboBox1     MsgBox .ListIndex '何番目か(0から)     MsgBox .List(.ListIndex) 'リスト   End With End Sub のような感じでしょうか。(Excel97です)

smatsuz
質問者

お礼

回答ありがとうございます。 知りたかったのは前者です。後者は知りませんでした。 しかし、このままのコードを実行するとDropDowns()が定義されてないとエラーになってしまいます。 お手数をおかけしますが、再度アドバイスを頂ければと思います。

  • holy_s
  • ベストアンサー率20% (1/5)
回答No.3

こんにちは。 例えば、Sheet1のComboBox1の値を参照したければ、 Sheet1.ComboBox1.Value でOKです。

smatsuz
質問者

お礼

回答ありがとうございます。 私の質問の仕方が悪かったようです。 下の方の所へ補足しましたのでもしご存知であれば 再度回答をお願いします。

  • akasaka
  • ベストアンサー率38% (38/99)
回答No.2

私は… コンボボックスに着けた名前.Value …で、参照しています。

smatsuz
質問者

お礼

回答ありがとうございます。 私の質問の仕方が悪かったようです。 下の方の所へ補足しましたのでもしご存知であれば 再度回答をお願いします。

  • zerosix
  • ベストアンサー率31% (47/149)
回答No.1

ComboBox1.Valueでできますよ。 Sub b() ComboBox1.ListIndex = 1’選択した行番号 MsgBox ComboBox1.Value End Sub

smatsuz
質問者

お礼

回答ありがとうございます。 知らなかったのですが、上の方の回答にあるようにコンボにも2種類あるのですね。 今回知りたかったのはフォームツールバーから作成したコンボボックスで、Object名を自分で設定できなかったので値の参照方法が分りませんでした。

関連するQ&A