
No.2ベストアンサー
- 回答日時:
'コンボボックスに追加
Private Sub Form_Load()
Combo1.AddItem "AAA"
Combo1.AddItem "BBB"
Combo1.AddItem "CCC"
End Sub
'コンボボックスの入力欄に直接入力した場合
Private Sub Combo1_Change()
Debug.Print Combo1.Text
End Sub
'リストから選択して、Changeイベントを発生
Private Sub Combo1_Click()
Call Combo1_Change
End Sub
No.1
- 回答日時:
MSDNにChangeイベントはTextボックスの内容を変更した際に発生するものであり 矢印キーやドロップダウンリストから選択された場合は発生しないと明記されています
どうしてもということであれば CBN_SELCHANGEメッセージ捕まえてChangeイベントを起こすしかないようです
Combo1_ChangeをPrivateからPublicに変更します
標準モジュールを追加して
Declare Function SetWindowLong Lib "user32" Alias _
"SetWindowLongA" (ByVal hwnd As Long, _
ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Declare Function CallWindowProc Lib "user32" Alias _
"CallWindowProcA" (ByVal lpPrevWndFunc As Long, _
ByVal hwnd As Long, ByVal Msg As Long, _
ByVal wParam As Long, ByVal lParam As Long) As Long
Public Const GWL_WNDPROC = (-4)
Public Const CBN_SELCHANGE = 1
Global lpWndProc As Long
Public Function ComboProc(ByVal hwnd As Long, ByVal uMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Dim NM As Long
ComboProc = CallWindowProc(lpWndProc, hwnd, uMsg, wParam, lParam)
NM = (wParam And &HFFFF0000)
If NM = CBN_SELCHANGE * &H10000 Then
Form1.Combo1_Change
End If
End Function
を記述します
Form1のLoadイベントとQueryUnLoadイベントを追加します
Loadイベントで
lpWndProc = SetWindowLong(Combo1.hwnd, GWL_WNDPROC, AddressOf ComboProc)
QueryUnloadイベントで
SetWindowLong Combo1.hwnd, GWL_WNDPROC, AddressOf lpWndProc
を記述します
これで選択を変更した際に Changeイベントが呼ばれます
ただし、WindowProcを書き換えているのでVB上から実行した際にブレークポイントなどを設定していると VBのシステム自体が落ちてしまいます
Debug.Printなどで 変数をインディエイトに表示することは可能です
回答ありがとうございました。
API関係は詳しくない為、このような方法があるとは知りませんでした。
専門的な知識に感謝いたします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) Application.InputBoxの表示形式 2 2022/08/09 22:32
- Excel(エクセル) コンボボックス及びリストボックスを5段階連動させる方法をご存知の方ご教授頂きたいです。 Excelで 3 2022/04/03 21:43
- Visual Basic(VBA) ①ExcelVBAでカレンダーを作り、別のユザーフォームで日付を入力したいのですがエラーになります。 1 2023/02/17 18:39
- その他(プログラミング・Web制作) PythonのTkinterイベントについて 2 2022/12/10 23:00
- JavaScript 以前の質問だと、どの条件でも配列が表示されてしまいます。 1 2022/07/09 11:40
- Visual Basic(VBA) VBA ComboBoxについて 2 2022/10/21 12:15
- JavaScript 電車の運賃を出すプログラムを作っています。 2 2022/06/22 09:36
- Visual Basic(VBA) EXCEL VBAにて動的にCheckBOXを複数作成し、同BOXにイベントを追加したい 1 2023/03/16 07:05
- マウス・キーボード パソコンのゲームで押しずらいキーがあったのでchange keyというキーの割り当てを変える ソフト 1 2023/03/17 09:43
- JavaScript sessionStorageを調べています。 1 2023/06/20 12:41
このQ&Aを見た人はこんなQ&Aも見ています
-
Form_Load と Form_Activate のタイミング
Visual Basic(VBA)
-
VB6 開発環境のエディタに行番号を表示
Visual Basic(VBA)
-
comboboxのクリックイベントについて
Visual Basic(VBA)
-
-
4
frxファイルの役目
Visual Basic(VBA)
-
5
VB6.0-整数と余りを求める
Visual Basic(VBA)
-
6
VB6 配列を初期化したい
Visual Basic(VBA)
-
7
テキストボックスの入力制限
Visual Basic(VBA)
-
8
上下の位置揃えについて
Visual Basic(VBA)
-
9
VBでイベント処理を追加するには?
Visual Basic(VBA)
-
10
コンボボックスでドロップダウンリストにしたときに・・・・
Visual Basic(VBA)
-
11
VB6.0 でメニューを作りたいんですが・・・
Visual Basic(VBA)
-
12
VB6.0で データベースの値をコンボボックスに取り込む方法
Visual Basic(VBA)
-
13
フォームを開く時のイベント処理
Visual Basic(VBA)
-
14
VB6のプロジェクトロードエラーについて
Visual Basic(VBA)
-
15
VBAから変更した時だけイベントを発生させない方法
Excel(エクセル)
-
16
日付型のフィールドに空白を入れる方法を教えてください
その他(データベース)
-
17
VBでファイルが開かれているかどうかを確認したい
Visual Basic(VBA)
-
18
VB6で、長い時間かかる処理実行中の表示の工夫について
Visual Basic(VBA)
-
19
任意のフォームが表示されているかを知りたい
Visual Basic(VBA)
-
20
Visual Basic 6.0 のテキストボックスの最大容量について
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
(VBA)チェックボックスのclick...
-
自作ダイアログボックス中のエ...
-
タブキー押下時のイベントをひ...
-
エクセルVBAのテキストボック、...
-
プログラミングc# Windowsフォ...
-
特定のキーを押すまでループさ...
-
KEYPREVIEW=TRUEについて。意味...
-
Objective-Cでキーボードイベン...
-
キーバッファについての質問
-
keypress
-
一定時間操作されないと自動で...
-
GetKeyStateについて
-
テキストボックスの入力文字を1...
-
VB.NETでフォームがない...
-
VB.NETのDropDownListをReadOnl...
-
項目移動の順番を設定したい
-
コマンドボタン(入力)をクリッ...
-
フォーカスについてお教えください
-
「ご処理進めて頂きますようお...
-
エクセルで、日付を入力すると...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【VB】タブ切り替え時のイベント
-
(VBA)チェックボックスのclick...
-
特定のキーを押すまでループさ...
-
タブキー押下時のイベントをひ...
-
KEYPREVIEW=TRUEについて。意味...
-
WPFでの時刻入力コントロールに...
-
一定時間操作されないと自動で...
-
テキストボックスの入力文字を1...
-
Visual Basic 6.0 コンボボック...
-
VB.NETでフォームがない...
-
コンボボックスにキー入力をさ...
-
自作ダイアログボックス中のエ...
-
エクセルVBAのテキストボック、...
-
Excel VBA マクロ実行中のみテンキ...
-
コントロールキーが押されたキ...
-
フォーカスについてお教えください
-
イベントハンドラが取得できな...
-
VB.NETのDropDownListをReadOnl...
-
C# WMPメディアの終了検知 その2
-
EXCEL VBA----ユーザーフォーム...
おすすめ情報