• ベストアンサー

VBAのコンボボックスでコメントみたいな表示はできないでしょうか?

VBAでユーザーフォームにコンボボックスを設置してます。このコンボボックスを開くと現在10項目位表示できるようにしているのですが、この表示内容の詳細をコメントみたいな感じで表示させることは可能なのでしょうか?たとえばコンボボックスで「スイッチ」と「ボタン」が選択できるとします。この状態では入力者はよく分からないため、たとえば「スイッチ」を選択する前に「スイッチ」の上にマウスのポインターを置くと「切り替えスイッチ」「ロータリースイッチ」等の詳細表示をエクセルのコメントとように表示させ、それを確認して入力者は選択をする。見たいな感じのことはできないのでしょうか?分かる人がいたら教えてください。よろしくお願いします。

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

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

こんにちは。 内容項目のそれぞれに、ポップアップ(TipText)は、付けられないと思います。コメントのようにポップアップできるのは、それ自体が(ActiveX)コントロールでないとできません。 ですから、 サンプルですが、 ListBox を一つ設けて、クリックで、 'Option Explicit '説明をコンマ切りで順番に入れる Const MSG As String = "エー,ビー,シー,ディー,イー,エフ,ジー,エイチ,アイ,ジェー" Private Sub UserForm_Initialize() Dim i As Integer For i = 65 To 74  ListBox1.AddItem Chr(i) Next End Sub Private Sub ListBox1_Click() Dim Msges As Variant  Msges = Split(MSG, ",")  On Error Resume Next '設置者が配列数をミスした場合を想定  MsgBox Msges(ListBox1.ListIndex) End Sub なお、クリックは右クリックでもコードを換えれば可能になります。

takedono
質問者

お礼

ありがとうございます。勉強になりました。まだまだ勉強不足なのでがんばっていこうと思います。

その他の回答 (1)

  • papayuka
  • ベストアンサー率45% (1388/3066)
回答No.1

Excelですか? ComboBox の ControlTipText プロパティでヒント表示は可能です。 ただ、一覧表のように表示するイメージでは無いですね。 改行コードを入れても改行されなかったのでサンプルはカンマで区切ってみました。 この辺は Excelのバージョンによって違うかも知れません。(こちらは Excel2000) UserForm に ComboBox をひとつ置き、下記コードでテスト Private Sub UserForm_Initialize() Dim s As String  For i = 65 To 74    Me.ComboBox1.AddItem Chr(i) & Chr(i)    s = s & Chr(i) & Chr(i) & ","  Next i  Me.ComboBox1.ControlTipText = s End Sub でも、10項目程度で選択肢を最初から見せたいならいっそ ListBox を使うとか、、、

takedono
質問者

お礼

ありがとうございます。とりあえず何とかしてみます。

関連するQ&A

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

    お世話になります。 Access2002でフォームを作成しているのですがコンボボックスを使用する際VBAで項目を登録、入力不可にして選択のみできるようにできないのでしょうか? VBAではなくVB6のコンボボックスの場合Styleプロパティに 2(ドロップダウンリスト)を設定したら可能なのですがAccess2002のコンボボックスにはStyleプロパティがありません。 また、ほかの方法が在れば教えていただけませんでしょうか? 以上、よろしくお願いします。

  • ExcelVBA コンボボックスの表示

    お世話になります。 VBAユーザフォームのコンボボックスのリストにソースから追加しています。 ColumnCountを2に設定しているので、コンボボックスから選択するときにはちゃんと2列表示されるのですが、選択したあとにコンボボックスの表示に残るのは1列目だけなのです。 どのプロパティを変更したらいいのか見つかりません。 ご存知の方がいらっしゃいましたら、教えてください。 よろしくお願い致します。

  • Accessのコンボボックスのデフォルト表示

    Access初心者です。 フォームのコンボボックスですが、ウェブフォームでよく見られるように、未選択時に「---選択してください---」というコメントを表示できないでしょうか。 「---選択してください---」はデータとして入らないような解決法でお願いします。 VBAでMe!コンボボックス名.Value = "AAA"というふうにやってみましたが、どうもValueはテーブルのデータ型と同じでないとダメみたいです。テーブルの当該フィールドには例えば都道府県IDのように、数値だけしか格納しない予定ですので、これでは「このフィールドに入力した値が正しくありません」というエラーが出ます。 なお使っているのは2013です。いい解決法がないでしょうか。よろしくお願いたします。

  • エクセルVBAでコンボボックスの非表示について

    最近VBAを勉強し始めたのですが、コントロールについてわかりませんので、ご教授お願いします。 コンボボックスを初期では非表示、トグルボタンをクリックすると、コンボボックスを表示させる方法を教えてください。 ユーザーフォームについてまだ未熟なので、すみませんがよろしくお願いします。

  • Excel VBA コンボボックスの使い方

     VBAでのコンボボックスの使い方をしらべているのですが、うまく見つかりません。コンボボックスのリストに登録するのはどうしたらよいのでしょうか?シート上のセル内のデータを使用しないとリストの登録は出来ないのでしょうか?VBA上で作成して、ユーザーフォームで選択できるようにしたいと思っています。VBAをはじめたばかりなので初歩的な質問で大変恐縮です。どなたかわかる方がいらっしゃったらお願い致します。

  • コンボボックスからのフォームの開き方

    MS Access2002を使用しています。 入力用のフォームを作っているのですが。 親ホーム内のコンボボックスで選択すると 選択されたものと同じ名前の 詳細入力用の子フォームが開くようにしたいと思っています。 どのようにすればいいのでしょうか? どなたかご教授願います。

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

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

  • テキストボックスとコンボボックス

    こんにちは、Accessのフォームにテキストボックスとコンボボックスを設置して、以下のような事ができないかと悩んでおります。 フォーム内には、テキストボックスとコンボボックスが設置してありまして、コンボボックス内にDB(会社名テーブル)から取得した全ての会社名が入っています。 しかし、そのレコード数が300件近くあるため、コンボボックス内から探し出すのに手間が掛かります。 そこで、コンボボックスの隣にテキストボックスを設置し、テキストボックス更新後に会社名テーブルの検索を行い、条件に合った会社名だけをコンボボックス内に入れることを考えているのですが、上手く行きません。 動作のイメージとしては下記のようになります。 (1)初期表示時はテキストボックス内に何も入力されていないので、全レコードがコンボボックス内に表示される。 (2)テキストボックスに「有限」と入力して、テキストボックスからフォーカスを移動させると、コンボボックス内に「有限」が会社名に含まれているレコードのみが入っている。 (3)テキストボックスを空白に戻すと、コンボボックス内には全レコードが表示 以上、どなたかご教授よろしくお願いします。

  • コンボボックスで

    コンボボックスで、あるテーブルを参照してリストを出す場合、リスト中になかった場合に、コマンドボタンを押せばテーブルの追加フォームが出てきて入力できるようにしています。この場合に、入力フォーム内で終了(保存)ボタンを押せば、自動的にコンボボックスの中に入り、かつもう一度選択しなくても表示されているような操作はできないものでしょうか?

  • 「Access」のコンボボックス、マウスを使わずに入力するには?

    「Access2000」を使用しています。 使い始めたばかりなので、 マクロやVBAの事はほとんど分からないのですが… 「フォーム」のコンボボックスで、 「▼」(プルダウンメニュー?)を押して 選択しなくても、あえて選ばない限りは、 常に一番上のメニューが表示(入力)されるように したいのですが…。 入力の流れの中で、いちいちマウスに 持ち替えるのが面倒なのですが、 どうにか出来ないものでしょうか? それと、「テーブル」を開いた時に、 常に一番最後に入力したレコードが 表示されるようにするには、 どうすればよいのでしょうか?

専門家に質問してみよう