• ベストアンサー

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

  • Excelのワークシート上でコンボボックス

    お世話になります。 Excelのワークシート上にコンボボックスを配置して、ここからマクロを選択して呼び出すことは出来ますか? コンボボックスは配置できるのですが、マクロ名を設定する方法がわかりません。 エクセルのヴァージョンはExcell2000です。 よろしくお願いいたします。

  • コンボボックスに付いて

    エクセル2000を使用しています。コンボボックスに付いて教えて下さい。 今コンボボックス(ユーザーフォーム使用)を12個一組 計5組 にて簡単な選択データを作っています。 コンボボックスの値はシートより読み出し値を表示させているのですが、この12個のコンボボックス1~12みたいな感じで 簡単に一まとめ出来ないでしょうか? 12個一組は内容は同じです。とりあえず一つ一つのコンボボックスに対してシートを参照するようにしましたが、 もっと簡単に簡略化出来ないものなのでしょうか? ご教示お願い致します。初心者ですので例などで教えて頂ければ幸いです。

  • エクセルのコンボボックスについて

    シート「データ」に   A  B 1 い  東京 2 ろ  千葉 3 は  埼玉 上記内容が記載されています。 それを別のシートで参照できるようにリストを作って入力規則でコンボボックスを作りました。 しかし、コンボボックスには選択肢がひとつしか表示されません。 「い、ろ、は」だけが表示されています。 でも本当は「東京、千葉、埼玉」をコンボボックスで表示し、セルには「い、ろ、は」のどれかを表示するようにしたいのです。 これをマクロを使わないでできるでしょうか?

  • コンボボックスに設定する値

    ユーザーフォーム上のコンボボックスに設定する値を ワークシートの入力規則のリストで設定した値から参照するにはどうしたらいいでしょうか? 入力規則の値は、元の値のテキストボックス?に直接入力されているので これをどこかのセル範囲を参照して~というのはナシでお願いします。

  • エクセルVBAでコンボボックス

    エクセルVBAのコンボボックスの使い方について質問します。 実現したいプログラムは 「チェックボックスから選んだ数字で計算するプログラム」 です。 具体的には… まず、コンボボックスをシート上に配置します。そのコンボボックスには 数字の1から10を選べるようにしておきます。 次に、コマンドボタンを配置します。これは単にプログラムをスタート させる目的です。 ユーザーは、まずコンボボックスから好きな数字を選択します。 そしてスタートボタン(コマンドボタン)を押します。 すると、選んだ数字の2倍がセルに表示されます。 さらに発展系としては… チェックボックスを4つ配置します。各チェックボックス には、+、-、×、÷を割り振っておきます。 また、コンボボックスを2つ用意し、それぞれ1~10の数字をリストにします。 ユーザーは、チェックボックスから好きな記号を選び、さらにコンボボックスから 好きな数字を選びます。そしてスタートボタンを押すと、選んだ数字を選んだ記号 で計算した値がセルに表示されます。 というようなプログラムを考えているのですが、うまくできません。 ポイントは、 ・チェックボックスにリストを入力する方法 ・チェックボックスの選択状態や、リストボックスから選ばれた数字を、  変数として取得する方法 インターネットで調べているのですが、リストボックスに値を入れるのにもマクロを走らせ なければならない方法とか、ユーザーフォームでの説明ばかりでなかなか実現に至りません。 http://www.eurus.dti.ne.jp/~yoneyama/Excel/vba/vba_userform05.html プログラムのイメージ図としては添付の図の通りです。 どのようにプログラムを書けばいいのでしょうか。

  • Excelマクロのコンボボックスについて

    初めてマクロを扱います。 マクロに詳しい方、コードをご教授ください。 Excelマクロを使い下記の機能をシートに盛り込みたいと考えております。 【実現したいこと】 ・シート上にコンボボックスを作成し、コンボボックスで選択した項目で絞り込めるようにする。 ・コンボボックスに格納される項目は、A列の重複を除外し、昇順で並べ替えたもの。 ・またコンボボックスに格納する項目は日々レコード追加されるため、コンボボックスの中身にも随時反映するようにしたい。 ・コンボボックスには「全て表示」というアイテムを追加し、「全て表示」を選択すると、フィルターが解除される。 わかりにくいかもしれませんが上記のことを実現したいと考えております。 どうかお知恵をお貸しください!! よろしくお願いします!!

  • コンボボックスの値が消えてしまいます。

    コンボボックスの値が消えてしまいます。 フォーム(1)にコンボボックスA(値集合ソースはテーブル1)があります、この リスト外入力時で別フォーム(2)(レコード追加用)を開きテーブル1にレコードを追加、 フォーム(2)を閉じる時にコンボボックスAをリクエリかけてフォーム(1)に戻るとコンボボックスAが空になっているのでリストを開き選択し直さなければいけません! フォーム(1)に戻った時コンボボックスAに入力した値を選択させておくにはどの様にすれば良いか アドバイスよろしくお願いいたします。 WIN XP ACCESS 2003で作成しています。

  • エクセル、フォームでのVBAについて(コンボボックス)

    エクセル97でフォームのコンボボックスを使用する場合の質問です。 ワークシートにコンボボックスを10個配置しました。 入力範囲はすべて同じです。 このコンボボックスで特定の項目(入力範囲6番目)を選んだ場合、次のマクロを実行するようにしようと思っています。マクロを10個書いてそれぞれのコンボボックスに登録してもいいのですが、それよりはどのコンボボックスが使用されたか特定できればすべてのコンボボックスに一つのマクロで対応できます。 コンボボックスに番号(たとえばコンボ1~コンボ10)を振ってその番号の取得ができればいいのですが、どのように記述したらよいのか検討がつきません。 お教えください。

  • クエリの条件式に複数のコンボBoxの値を参照させるには?

    コンボボックスで選択された値を元に選択を行わせるクエリを作成しています。 ですがある特定のコンボボックスからの値でなく、複数のコンボボックスの値を組み合わせて選択を行うのはどの様にしたら良いのでしょうか? テーブル名:テーブル1 クエリ名:選択クエリ1 選択の元になるフィールドはテーブル1内の[時刻]フィールドです。 ここは日付/時刻型になっており、表示形式は[YYYY/MM/DD HH:MM:SS]です。 この部分である範囲の選択を行いたいのですが、それの元となるコンボボックスを年/月/日/時/分/(秒)に分けたいと考えています。 (秒は無くても良い) 通常コンボボックスの値を参照する際は Like [Forms]![フォーム名]![コンボボックス名] という条件式を使いますが、複数のコンボボックスの値を組み合わせる場合はどのように記述したら良いのでしょうか? またクエリのデザインビューで出来ない場合はモジュールでの記述方法をご教授頂けるとありがたいです。 よろしくお願いいたします。

  • エクセルVBA コンボボックスの値の転記

    エクセルVBAの質問です。 ユーザーフォームを表示し 年を選択するコンボボックス1 月を選択するコンボボックス2 を入力してもらい ユーザーフォームを閉じるときに sheet1のワークシートのC2セルに 「コンボボックス1の値」+「年」+と「コンボボックス2の値」+「月」をつなげて 入力できるというようなマクロを考えています。 下記の様に考えてみたのですが、 うまく入力できませんでした。 Private Sub UserForm_Initialize() With ComboBox1 .AddItem "2021" .AddItem "2022" .AddItem "2023" .AddItem "2024" End With With ComboBox2 .AddItem "1" .AddItem "2" .AddItem "3" .AddItem "4" .AddItem "5" .AddItem "6" .AddItem "7" .AddItem "8" .AddItem "9" .AddItem "10" .AddItem "11" .AddItem "12" End With Private Sub CommandButton1_Click() 'ユーザーフォームを閉じる Unload UserForm1 'ユーザーフォームの値をセルC2に入力 With Worksheets("sheet1") .Cells(2, 3).Value = "ComboBox1.Text" & "月" & "ComboBox2.Text" & "日" End With End Sub どのように修正すればいいでしょうか? よろしくお願いします。

専門家に質問してみよう