ActiveXコントロールのコンボボックスの表示とスクロールについて

このQ&Aのポイント
  • ActiveXコントロールのコンボボックスの表示が制限される
  • コンボボックスの中身が増えるとスクロールバーが表示されるが、マウスのホイールスクロールと連動しない
回答を見る
  • ベストアンサー

ActiveXコントロールのコンボボックスについて

あるシートに、ActiveXコントロールのコンボボックスを1つ作成し、 別なシートからコンボボックスの中身を取り出すような形にしました。 コンボボックスの中身は  [****]AAAA   ※*は半角数字、AAAは全角で漢字やひらがな交じり。*は4文字。Aは最大16文字 というような形になっています。 コンボボックスの中身は、場合によって違い、最小3個、最大17個になります。 質問1:コンボボックス内の表示がAの部分の4文字までで切れてしまいます。      これが表示の限界なのでしょうか?      全て表示させることはできないのでしょうか? 質問2:コンボボックスの中身が多くなると、垂直スクロールバーが表示されますが、      これがマウスのホイールスクロールと連動しません。      連動させることは出来ないのでしょうか?

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

  • ベストアンサー
  • cj_mover
  • ベストアンサー率76% (292/381)
回答No.1

こんにちは。 > 質問1:コンボボックス内の表示がAの部分の4文字までで切れてしまいます。 >     これが表示の限界なのでしょうか? >     全て表示させることはできないのでしょうか? コンボボックスのリストに表示する列の数、 これが1列ならば、コンボボックスのプロパティで、   .ColumnCount を 1 に設定すればOKです。 2列とかならば、   .ColumnCount を 2   .ColumnWidth を 200;16  ( 200 pt;16 pt のように表示されます。) のように、各列に十分な幅を指定しておきます。 (無論コンボボックス全体の幅は適宜設定が必要です) > 質問2:コンボボックスの中身が多くなると、垂直スクロールバーが表示されますが、 >     これがマウスのホイールスクロールと連動しません。 >     連動させることは出来ないのでしょうか? コンボボックスはマウスホイールの動作に関知しませんから、これは無理です。 ただし、  > コンボボックスの中身は、場合によって違い、最小3個、最大17個になります。 ということでしたら、 ドロップダウンリストの表示行(件)数は、凡そ30行(件)程度でも十分扱えますから、 現実的な対応として、予めコンボボックスのプロパティで、   .ListRows を 17 と最大行(件)数に合わせて設定しておけば(スクロールバー無用になり)いいと思います。 (リストが、より少ない行数になった場合でも、無駄な行は表示されませんし) 以上の対策をプロパティページで設定し直すことに自信がない場合は、 以下の記述を、コンボボックスを配置したシートの シートモジュールに貼り付けて、一度だけ実行してみて下さい。 (コンボボックスのオブジェクト名、各パラメータは運用に合わせて適宜指定) Sub TuneCombo() ' 1列の場合の例   With ComboBox1     .ColumnCount = 1     .ListRows = 17   End With End Sub Sub TuneCombo2() ' 1列の場合の例 With ComboBox1 .ColumnCount = 2 .ColumnWidths = "200;16" .ListRows = 17 End With End Sub 尚、  ・作成者が設定(変更)した各種プロパティ  ・コンボボックスのリストの設定方法 の如何によって(何か特別なことをしている場合)は、 上述の対策では不十分な場合も考えられます。 その場合は、改めて全貌を開示して回答を待つか、 記録や記憶が残っていないなどの理由で開示が難しい場合には、 コンボボックスを最初から作成し直した方が早い場合もあるかも知れません。 また、 > 別なシートからコンボボックスの中身を取り出すような形にしました。 この一文が意味すること、と、今回解決するべき問題との関連、が、 私には解りませんでしたので、今回の回答には反映しておりません。 以上です。

Erin_all_right
質問者

お礼

ご回答ありがとうございます。 教えて頂いた.ColumnWidthをプロパティページで変更することで望んだ通りになりました! また質問2の方も、おっしゃる通り最大件数に合わせても、操作に支障がなさそうだったので、そのように致しました。 >> 別なシートからコンボボックスの中身を取り出すような形にしました。 この一文は、一応状況説明のために記載しただけですので、おっしゃる通り、今回の質問には関係ありませんでしたね。すみません。 何はともあれお世話になりました。 今後ともよろしくお願いいたします。

関連するQ&A

  • ACCESS2000でのActiveXのコンボボックスの使い方について

    ACCESS2000で、今まで使用していたコンボボックスをActiveXコントロール(Microsoft Forms2.0)のコンボボックスに変更しようとしています。今までは値集合ソースでクエリを使って「商品名」「商品コード」を表示させ、選択後に商品コードを取得して、他で利用しています。 これをActiveXコントロールでは、どのように行ったらよいのでしょう? アドバイスをどうか、よろしくお願いします。

  • グループボックス内のコンボボックスについて

    お世話になります。 WindowsXP / VC2005 / VC++ MFC / ダイヤログベースにて開発を行っています。 グループボックス内にコンボボックスを2つ配置しています。 コンボボックスにカーソルを合わせて、マウスホイールをスクロールした際、 ボックスの中身がスクロールしないのですが、スクロールする方法をご存知でしたら教えていただけないでしょうか? グループボックス外にコンボボックスを配置した場合では、ボックスの中身がスクロールされており、 再度グループボックス内にてプロパティを変更したりと試してみたのですが、思うように行きません。 よろしくお願いいたします。

  • Excelマクロのコンボボックスに関して

    マクロを初めて扱います。 どなたか詳しい方、ご教授ください。 Excelのシート上にActiveXのコンボボックスを作成しました。 このコンボボックスに同じブックの別シートのA列のX行目からY行目までを格納したいと考えております。 どうかコードの書き方をお教えいただけませんでしょうか?

  • エクセル、コンボボックス/フォームのとコントロールツールボックスの

    エクセル2000です。 今まではワークシートにフォームのコンボボックスを貼って使ってきました。 でも色を変えたり出来ないので、今度はコントロールツールボックスからコンボボックスを貼ってみました。 質問ですが、コンボボックスに表示させるリストを設定するのに、これまでのフォームのコンボボックスだと書式設定で入力範囲をカーソルをあてて一度に簡単に指定できたのですが、コントロールツールボックスのコンボボックスだとそれが出来ません。VBEditorのプロパティのところのListFillRangeの右側にいちいち手でSheet1!A1:A5のように打ち込まなければならないようです。これではけっこう手間がかかってしまいます。 わたしのやりかたが間違っているのでしょうか?

  • コンボボックスの設定について

    コンボボックスの設定について Access2000でプログラムを作っているところで質問です。 とあるコンボボックスで項目を選択すると、そこに連動した形で他のフィールドにも 項目が表示されるようになっています。もちろんコンボボックスからは自由に項目を 選べるようになっています。 今回は、そのコンボボックスの項目表示を固定化して他の項目を選べないように改修を しています。現在表示されている項目以外、コンボボックスをクリックしてもボックス 内に表示されないようにする方法をご存知の方、お知恵をお借りしたいと思います。

  • シート上のコンボボックスの使い方

    シート上のコンボボックスの使い方 現在作っている物があるのですが、色々と調べてはみるものの解決出来なくて困っています。 ☆やりたいこと シート1 コンボボックスA コンボボックスB コンボボックスC 一覧表(A1~A16)の枠だけが書かれているもの コンボボックスA・・・青森 秋田 岩手 コンボボックスB・・・100 200 300 コンボボックスC・・・北 東 西 南 シート2 コンボボックスAとBとCの選択されたものによって選ばれる一覧表(例A1~E16)のデータ ☆シート1にてコンボボックスを3種類選択した時に、シート1枠だけの一覧表にシート2のデータが表示される! ということがやりたいです。 説明がアバウトすぎて申し訳ありませんが、初心者なりに色々やった結果が惨敗に終わっている状態です。 皆様のお力を貸していただきたく思います。

  • C# コンボボックスについて

    コンボボックスが2つあって 2つとも中身があります。 コンボボックス1の中身 りんご みかん なし コンボボックス2の中身 10001 10002 10003 やりたいことは、コンボボックス1にみかんを選択したら自動的にコンボボックス2に10002と表示したいのですが、どうしたらできますか? どなたか教えて頂けませんか?お願いいたします。

  • Access2003コンボボックスについて

    Access2003の勉強を始めたばかりの初心者です。 コンボボックスについて初歩的な事かもしれませんが、お教え下さい。 他のコンボボックスと連動するコンボボックスを作りたいと思っております。 具体的には、A・B・Cと3つのコンボボックスを作り、Aがブランクの状態ならB・Cブランク、Aに値が入ったらそれに伴った絞り込み結果をB・Cへ。 Bに値が入った場合は、その結果をCへ。 と言う様な処理を考えています。 用途はAに都道府県Bに市区町村Cに個人名を表示する予定です。 AからB・Cの連動は出来たのですが、あの値を反映したBからCへの連動処理ができません。 どなたかご存知方いらっしゃいましたら、ご教授お願い致します。

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

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

  • Excel2010のコンボボックスについて

    ActiveXコントロールのコンボボックスについて質問です。 ListFillRangeに一番上に文字列・以下は日付の入ったセル(日付の書式はyyyy/mm/dd)を設定しています。 コンボボックスで選択する際にリストの表示は設定したセルの通りなのですが、日付を選択するとコンボボックスのテキストエリア?の表示が標準に(41172のように)なってしまいます。 これをyyyy/mm/ddのように表示することは可能でしょうか? プロパティのどこをどのようにしたら良いのでしょうか? お願いします。

専門家に質問してみよう