• ベストアンサー

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

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

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

  • ベストアンサー
  • DreamyCat
  • ベストアンサー率56% (295/524)
回答No.2

Private Sub ComboBox1_DropButtonClick() があります。 listが開くのでそのどれかを選択すればうまくいきますが listを選ばないと2回呼び出されてしまいます。

pbmbkwwxful
質問者

お礼

どうもありがとうございました。

その他の回答 (1)

回答No.1

Private Sub コンボ2_MouseDown(Button As Integer,・・・ Y As Single) MsgBox X & ":" & Y End Sub で、XとYとの値を調べれば、▼ボタンが押されたかどうかは判定できます。

pbmbkwwxful
質問者

お礼

どうもありがとうございました。

関連するQ&A

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

    エクセルVBAでActiveXコントロールのコンボボックスを配置して以下の プログラムを記述しているのですが、 コンボボックスでAを選択した後に、もう一度Aを選択したときに イベントが発生しません。 Private Sub ComboBox1_Change()ならイベントが発生しないのは 分かるのですが、Clickの場合は、選択された値が変わらなくても イベントが発生すると思ってたのですが。 VB6では問題なく発生しています。 ちなみにセルの入力規則ではなくてコンボボックスで実現したいです。 Private Sub ComboBox1_Click() 'ここに処理を記述 End Sub

  • コンボボックス 印刷ボタンについて

    アクセス勉強中です。 フォームで見ている画面だけを印刷する、コンボボックスを作成しています。 コンボボックスウィザードにて印刷ボタンを作成したのですが、 すべてのデーターが印刷されてしまい困っております。 どこを変更すれば1枚だけ印刷ができるのでしょうか? イベントプロジャは下記です。 どうぞ宜しくお願いいたします。 Option Compare Database Private Sub リスト70_AfterUpdate() ' コントロールの値と一致するレコードを検索する Dim rs As Object Set rs = Me.Recordset.Clone rs.FindFirst "[IDI] = " & Str(Me![リスト70]) Me.Bookmark = rs.Bookmark End Sub Private Sub コンボ73_AfterUpdate() ' コントロールの値と一致するレコードを検索する Dim rs As Object Set rs = Me.Recordset.Clone rs.FindFirst "[NO] = " & Str(Me![コンボ73]) Me.Bookmark = rs.Bookmark End Sub Private Sub コンボ73_BeforeUpdate(Cancel As Integer) End Sub Private Sub 生年月日_AfterUpdate() Me.年_____齢 = Int(DateDiff("d", [生年月日] - 1, Date) / 365.25) End Sub Private Sub 郵便番号_AfterUpdate() Me!現住所.SetFocus Me!現住所.SelStart = Len(Me!現住所) End Sub Private Sub コマンド121_Click() On Error GoTo Err_コマンド121_Click Dim stDocName As String Dim MyForm As Form stDocName = "顧客リスト" Set MyForm = Screen.ActiveForm DoCmd.SelectObject acForm, stDocName, True DoCmd.PrintOut DoCmd.SelectObject acForm, MyForm.Name, False Exit_コマンド121_Click: Exit Sub Err_コマンド121_Click: MsgBox Err.Description Resume Exit_コマンド121_Click End Sub

  • 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

  • フォームのコンボボックスのチェンジイベントがエラー

    フォームのコンボボックスのチェンジイベントがエラーになってしまいます フォームのコンボボックスで値が変更するたびに コンボックスのリストを絞り込むようにしたいので フィールド1 1111 1112 1113 1211 1212 フォーム1を作成しコンボボックスを設置し 値集合ソースを SELECT テーブル1.フィールド1 FROM テーブル1 WHERE (((テーブル1.フィールド1) Like "*" & [テーブル1]![フィールド1] & "*")); として コンボボックスの変更時イベントに Private Sub コンボ0_Change() Form_フォーム1.コンボ0.Requery End Sub としました。 そしてこのコンボボックスに 「2」というように値を入力すると 「実行時エラー '2118' "Requery/再クエリ"アクションを実行する前に、カレンとフィールドを保存する必要があります。」 となってしまいます。 やりたいことは コンボボックスに「2」を入力すれば テーブル1の「2」が含まれるものが抽出され 1112 1211 1212 がコンボボックスの ▼マークをクリックした後のリストに表示されるようにしたいのですが どうすればいいでしょうか? よろしくお願いします。

  • テキストボックスに値を入力し終わったらイベントを発

    エクセル2007を使用しています。 アクセスで言う「更新後処理」のAfterUpdateイベントは エクセルのActiveXコントロールのテキストボックスイベントにはないのでしょうか? 例えば、テキストボックスに「aiu」と入力し終わったらイベントを発生させたいのですが、 Private Sub TextBox1_Change() MsgBox "" End Sub にしすると 「a」を入力した時点で、MsgBox が表示されてしまいます。 テキストボックスに値を入力し終わったらイベントを発生させる方法はありますか? VBE画面でシートイベントを見ても AfterUpdateイベントは見当たりません。 ご回答よろしくお願いします。

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

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

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

    今データ入力用のフォームmainがあります。 そこで複数のデータを入力していくのですが、そこでわからなくなりました。 入力用コンボボックスがひとつだけのときは Private Sub userform_Initialize() Dim 配列(2) 配列(0) = "データ1" 配列(1) = "データ2" 配列(2) = "データ3" 入力用コンボ.List = 配列 End Sub Private Sub 入力用コンボ_Change() MsgBox 入力用コンボ.ListIndex End Sub としていたのですが、複数になった場合の理屈を含めわかりません。 一つの入力用フォームにコンボボックスが複数あった場合はどうすればよいのですか?

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

    コンボボックス 印刷ボタンについて アクセス勉強中です。 フォームで作成した画面 だけを印刷する、コンボボックスを作成しています。 コンボボックスウィザードにてフォーム印刷ボタンを作成したのですが、 1000人くらいの、すべてのデーターが印刷されてしまい困っております。 どこを変更すれば1枚だけ印刷ができるのでしょうか? イベントプロジャという部分は下記です。 またプロジャー以外に何かしなければならないのでしょうか?? どうぞ宜しくお願いいたします。 Option Compare Database Private Sub リスト70_AfterUpdate() ' コントロールの値と一致するレコードを検索する Dim rs As Object Set rs = Me.Recordset.Clone rs.FindFirst "[IDI] = " & Str(Me![リスト70]) Me.Bookmark = rs.Bookmark End Sub Private Sub コンボ73_AfterUpdate() ' コントロールの値と一致するレコードを検索する Dim rs As Object Set rs = Me.Recordset.Clone rs.FindFirst "[NO] = " & Str(Me![コンボ73]) Me.Bookmark = rs.Bookmark End Sub Private Sub コンボ73_BeforeUpdate(Cancel As Integer) End Sub Private Sub 生年月日_AfterUpdate() Me.年_____齢 = Int(DateDiff("d", [生年月日] - 1, Date) / 365.25) End Sub Private Sub 郵便番号_AfterUpdate() Me!現住所.SetFocus Me!現住所.SelStart = Len(Me!現住所) End Sub Private Sub コマンド121_Click() On Error GoTo Err_コマンド121_Click Dim stDocName As String Dim MyForm As Form stDocName = "顧客リスト" Set MyForm = Screen.ActiveForm DoCmd.SelectObject acForm, stDocName, True DoCmd.PrintOut DoCmd.SelectObject acForm, MyForm.Name, False Exit_コマンド121_Click: Exit Sub Err_コマンド121_Click: MsgBox Err.Description Resume Exit_コマンド121_Click End Sub

  • エクセルVBAでフォームのボタンとコントロールツールボックスのコマンドボタン

    エクセルVBAでフォームのボタンとコントロールツールボックスのコマンドボタンについて教えてください。 実はこれまでフォームしか使ったことがないのですが、フォームのボタンですと、下記のように一つのプロシージャを多数のボタンから呼び出し、呼び出したボタンにより異なった指示が出来ます。 Sub test() x = Application.Caller Select Case x Case "ボタン 1" MsgBox 1 Case "ボタン 2" MsgBox 2 Case "ボタン 3" MsgBox 3 Case "ボタン 4" MsgBox 4 End Select End Sub コントロールツールボックスは Private Sub CommandButton1_Click() MsgBox 1 End Sub Private Sub CommandButton2_Click() MsgBox 2 End Sub のようにコマンドボタンごとにひとつずつ書くしかないのでしょうか?

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

    コンボボックスでドロップダウンメニューが押された場合の処理は Private Sub ComboBox1_DropButtonClick() 処理 End Sub リスト項目がクリックされた時は Private Sub ComboBox1_Click() 処理 End Sub 上記の関数を組み合わせるにはどうすればよいでしょうか?用はComboBoxのドロップダウンメニューが押されて さらにリストの項目が選択してクリックした時はなんらかの処理を行うようにしたいのですがうまくいきません。よろしくお願い致します。

専門家に質問してみよう