• ベストアンサー

コンボボックスのClickイベント

Combo1.AddItem "AAA" Combo1.AddItem "BBB" Combo1.AddItem "CCC" のようなコンボボックスがあり、プログラムの途中で Combo1.Text = "AAA" または Combo1.ListIndex = 0 としたときに、どちらの方法でもClickイベントが発生します。 このClickイベントを発生させないようにしたいのですが 何かよい方法はありますか? あれば教えてください。よろしくお願いします。

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

  • ベストアンサー
  • fis
  • ベストアンサー率88% (8/9)
回答No.1

こんにちは。 Publicのフラグを立てるのが一番簡単だと思います。 Public bClickFlg as Boolean ''Trueの時はクリックイベントに入らない。コンボボックス用フラグ と設定しておき、 bClickFlg = True Combo1.Text = "AAA" bClickFlg = False んで、Clickイベントには、 IF bClickFlg = True then Exit Sub として、Trueの時はすぐに外に出るようにしてしまう。 Clickイベント自体を発生させないことは出来ないので、 こうするのがてっとり早いかと思います。 それと、Combo1.Text = "AAA" でClickイベント走りますか? Chageイベントだとしても、同様にすれば大丈夫です。 Publicの変数は、他の人が見てわかるように、 きちんとコメントをつけて、特定のモジュールで宣言にするようにしましょうね^^ 見当違いでしたらすいません。 それでは、また。

holly-tree
質問者

お礼

こんばんは。 試してみたらちゃんと動きました。 ありがとうございました。 Combo1.Text = "AAA" でClickイベント走ってますよ。 その代わりChangeイベントは発生してないです。 Styleプロパティがドロップダウンリストボックスだからでしょうか。 まぁ、ちゃんと動いたからいいっか。 ということで本当にありがとうございました。

関連するQ&A

  • EXCEL VBA コンボボックスでのLISTINDEXの値

    初めて質問させていただきます。 EXCEL VBAでコンボボックスを設定したときのLISTINDEXの値についてですが、 コンボボックスがフォーム内に3つ(ComboBox1,2,3)あり、次のようなコードの入力を行い、 ComboBox1 Sub Userform_Intialize()  With CcomboBox1   AddItem"AAA" '・・・ここの値は0ですね   AddItem"BBB" '・・・ここの値は1ですね  End With End Sub sub ComboBox1_Change()  Me.combobox2.Clear  Select Case Me.ComboBox1.ListIndex   Case 0   Me.ComboBox2.AddItem "2AAA" '・・・ここの値は0ですね    Me.ComboBox2.AddItem "2BBB" '・・・ここの値は1ですね   Case 1   Me.ComboBox2.AddItem "2CCC" '・・・ここの値は何になりますか?   Me.ComboBox2.AddItem "2DDD" '・・・ここの値は何になりますか?  End Select End Sub このcombobox2の4つの項目から、 更にcombobox3の選択項目に分岐するように設定したいのです。 わかりやすいように、ComboBox3もComboBox2のように作成したいのですが、 このように入力した場合、ComboBox2で"2CCC"を選択した場合、 ListIndexの値が2ではないようなのです。 この"2CCC"と"2DDD"のListIndex値はいくつになるのでしょうか? どなたか教えて下さい。

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

    いつもお世話になります。 excel2003でコンボボックスを始めて使いたいと思います。 それで、下記のような事は出来ますか? 出来るのでしたら、その一番簡単な方法をお教え頂きたいです。 二つのコンボボックスを使って、 下記のようなデータを選びたいのです。 01 東京 aaa 東京タワー bbb 皇居 ccc 国会議事堂 02 大阪 aaa 通天閣 bbb 新地 ccc 漫才 03 名古屋 aaa キシメン bbb エビフライ ccc ミソカツ まず、最初のコンボボックスで 01 02 03を選び、 次のコンボボックスでは、例えば最初のコンボボックスで、 01 東京を選べば、 次のコンボボックスでは、01に関する下記だけが選べるようになる。 aaa 東京タワー bbb 皇居 ccc 国会議事堂 と言う具合には、出来ませんか? 上記のようになれば、 必ずしもコンボボックスを使わなくても良いのです。 なにぶん、初心者なので、申し訳ありません。 よろしくお願い致します。

  • access コンボボックス初期表示について

    ACCESS VBA コンボボックス 初期表示について。質問します。m(__)m 教えてください。 VBAのフォームロードでコンボボックスに初期表示 させたいのですが、初期表示させいたい内容というのが、テーブルにある例えば列名AAA、列名BBBがあるとして  列名AAAの中で「3」を持っている、列名BBBの名前を初期表示させたいのです。 テーブル名 CCC AAA...BBB. ...1 ......あ.... ...2.......い.... ...3.......う.... ...4 ......え... このテーブル「CCC」でいえば3を指定して、「う」をフォームロードでコンボボックスに初期表示させたいのですがどうやればいいのでしょうか? いまの状態はコンボボックスに「あ・い・う・え」の順番で取っきていて「あ」が初期表示になっています。 コードの書き方がわかりません。教えてください テーブルCCCはフォームのプロパティのコントロールソースでつなげてあります。 ↑という風に質問させていただいて 回答していただいた内容は //何番目のデータを初期表示したいか決め、FORM LOAD時にその値をLISTINDEXにセットすれば良いのでは? //即ち //Private Sub Form_Load() //Combo1.ListIndex = 2 //End Sub //のようにプログラムを書けば良いと思います。但し、初期値は”0”なので注意が必要です。 としていただいたのですが、私の質問が説明が足りていなくて改めて質問させていただきます。 テーブルの中身はそのときそのときで入れ替わります。 テーブル名 CCC  AAA...BBB..........................................AAA..BBB ...1 ......あ....左の並びのときもあれば.......3.......か ...2.......い....右のように並びが変わる.......1.......け  ...3.......う......時があります。....................2.......さ ...4 ......え................................................4.......な このときに「3」を指定して、3に対応するBBBの行をフォームロードでコンボボックスに初期表示させたいのですがどうやればいいのでしょうか?

  • コンボボックス ▼ボタンをクリックしたらイベント

    コンボボックスのクリックイベントについて。 コンボボックスの▼ボタンをクリックしたらイベントを発生させたいのですが Private Sub コンボ0_Click() MsgBox "" End Sub として、▼ボタンを押しても無反応です。 どうやらClickイベントは値が入力されたら発生するようですが 値を入力する前に、▼ボタンでプルダウンで値を入力しようとしたとき位 発生させるにはどうすればいいでしょう? GotFocusイベントだと、▼ボタン以外の部分に触れてもイベントが発生してしまいます。

  • コンボボックスに追加入力したデータを次回プログラムを動かすときに使えるようにしたい

    VB6を独学でやっていますので、どなたか教えてください。 コンボボックスに追加入力したデータを、次回プログラムを動かすときに使えるようにしたいのですが、どうしたらいいのでしょうか? combo1.addItem combo1.text だけでは、次回立ち上げると消えてしまっています。

  • コンボボックスのイベントについて

    OS  :WindowsXP Pro SP1 開発環境:VisualStudio .NET 2003 開発言語:C# 開発形態:Windowsアプリケーション いつもこの場にお世話になっております。 今回もよろしくお願い致します。 現在、Windowsアプリケーションを作成しており、フォームにはコンボボックスとテキストが貼り付けてあります。コンボボックスは配列になっています。 using System.Windows.Forms; public class Form1 : System.Windows.Forms.Form { 省略   private ComboBox[] cmbArray = new ComboBox[3]; } private void Form_Load(object sender, System.EventArgs e) // フォームロード {   cmbArray[0] = comboBox1;   cmbArray[1] = comboBox2;   cmbArray[2] = comboBox3; } // イベントハンドラの登録 for( int i=0 ; i<3 ; i++) {   cmbArray[i].Validated += new System.EventHandler(ComboBoxClick); } private void ComboBoxClick(object sender, System.EventArgs e) {   MessageBox.Show(((ComboBox)sender).Text); } プログラムは上記のようになっています。 ここで質問なのですが、コンボボックス内のアイテムが変更されたらすぐに発生するイベントは何なのでしょうか?ここではClickイベントを使用していますが、コンボボックス内のアイテムを変更し、そのコンボボックスからカーソルが別のコントロールに移動して初めて発生します。 いろいろとイベントを試したのですが、どれもカーソルが移動する際に発生しているようなのです。 コンボボックス内のアイテムが変更されたらすぐに発生するイベントはあるのでしょうか?どなたかご存知の方がおりましたら、どうかご教授願います。

  • vb コンボボックスのイベントについて

    こんばんわ。 コンボボックスで、 指定の値をマウス操作でクリックしたときと、 キーボードの上下で、移動後returnを押したときだけ、 MsgBox "処理実行" を実行したいです。 keystateを使ってみたのですが、前の情報が残っているのかうまくいきません。keystateの情報をクリアさせるか、シンプルに上記を動作させる何かよい方法はありますでしょうか。 Private Declare Function GetKeyState Lib "user32" (ByVal nVirtKey As Long) As Integer Dim flg1 As Boolean Private Sub form_load() Combo1.AddItem (11) Combo1.AddItem (22) Combo1.AddItem (33) Combo1.AddItem (44) End Sub Private Sub Combo1_Keyup(KeyCode As Integer, Shift As Integer) If KeyCode = 13 Then 'return flg1 = True Call Combo1_click End If End Sub Private Sub Combo1_click() If (GetKeyState(&H26) <> 0) Or (GetKeyState(&H28) <> 0) Then ' ↑↓ If flg1 = False Then Exit Sub End If End If MsgBox "処理実行" flg1 = False End Sub

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

    コンボボックスを2-ドロップダウンリストにすると「combo1.Text = ""」の命令が使えなくなるので2-ドロップダウンリストのままで「combo1.Text = ""」の命令が使えるようになる方法を教えてください。この命令がどうしても使用できない場合は、これと同じ動きをする命令を教えてください。

  • Excel ユーザーフォームのコンボボックスについて

    始めまして、マクロに関してはまだまだ勉強中なのですが、ユーザーフォームのコンボボックスについてつまづいてしまい、皆さんにご教授頂ければと思います。 一つユーザーフォームを作成後、そのフォーム内にコンボボックスを配置し、リストから項目を選択できるようにしたいと考え下記のように記述したのですが、ユーザーフォームを実行してもフォームは表示されてきますが、ボックスを選択してもリストに項目が表示されてきません。 Private Sub cmd入力_Click() End Sub Private Sub 選択グループCombo_Change() With 選択グループCombo .AddItem "初級" .AddItem "中級" .AddItem "上級" Private Sub cmd閉じる_Click() Unload Me End Sub この記述自体が間違っているのでしょうか。 宜しくお願いします。

  • コンボボックスのイベント

    コンボボックスで下向き三角をclick(1回目)は  [DropDown]イベントで認識でき、リストが表示されるのですが もう一度、コンボボックスで下向き三角をclick(2回目)した時  リストが元に戻るのですが、 このコンボボックスで下向き三角を2回連続でclickした場合  1回目は[DropDown]イベントが発生、2回目は・・・・   何イベントが発生するのでしょうか? 宜しくお願い申し上げます

専門家に質問してみよう