Windows XP、Access2000での開発で、サブフォーム上のテキストボックスを右リックすると
(普通のクリックではなく、あえて右クリック)、
別のフォームが表示される処理を作ろうとしています。
VBAのコードを
Private Sub テキストボックス名_mousedown(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = acRightButton Then
DoCmd.OpenForm "フォーム名"
End If
End Sub
としているのですが、これだとマウスを離してしまうと、画面が閉じてしまいます。
普通のクリックでのイベントと同じように、右クリックで別のフォームを表示するにはどうしたらよいでしょうか?
初心者です。
どなたか分かる方教えてください!!
No.1ベストアンサー
- 回答日時:
テキストボックスのコンテキストメニュー(右クリックをしたときに表示されるメニュー)の表示を抑止してやれば、フォーカスがテキストボックスに戻ることを防げるため、希望通りの動作が実現できます。
'子フォーム本体のフォームモジュール
Private Sub テキストボックス名_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = acRightButton Then
Me.ShortcutMenu = False '←追加部分
DoCmd.OpenForm "フォーム名"
End If
End Sub
ただし、このままではサブフォームのコンテキストメニューが全く表示されなくなってしまうので、親フォームがアクティブになったときにプロパティを戻してやる必要があります。
'親フォームのフォームモジュール
Private Sub 親フォーム_Activate()
Me.子フォーム.Form.ShortcutMenu = True
End Sub
もしかしたら違うかもしれませんが、独自のコンテキストメニューを表示したいのではないですか?もしそうだとしたら専用の方法があるので、そちらを使用したほうが良いと思います。
mach999さん、ありがとうございます。
マウスダウンのイベント時にフォーカスが
テキストボックスに戻ることを防げるようにすればよかったんですね。
サブフォームに表示された一覧の情報を右クリックすることにより、
それの修正を行うための画面を表示させたかったので、
コンテキストメニュー自体が出ないように設定していました。
教えていただいた方法で出来ました。
ありがとうございます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) ユーザーフォーム「frm_基本❶」を立ち上げると新規で入力する行数を右下のNoとして表示しています。 1 2023/03/16 19:02
- Visual Basic(VBA) 【VBA】写真の貼り付けコードがうまく機能しません。 5 2022/09/01 18:43
- Visual Basic(VBA) ①ExcelVBAでカレンダーを作り、別のユザーフォームで日付を入力したいのですがエラーになります。 1 2023/02/17 18:39
- Visual Basic(VBA) EXCEL VBAにて動的にCheckBOXを複数作成し、同BOXにイベントを追加したい 1 2023/03/16 07:05
- Visual Basic(VBA) Excel VBAでの右クリックのポップアップメニューの非表示方法は? 1 2023/04/12 17:03
- Visual Basic(VBA) VBA Userformで一部別シートに転記がしたいのですが 2 2023/05/24 13:08
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 1 2023/08/08 15:45
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/06 17:46
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- Visual Basic(VBA) vbaの計算 if elseと範囲について 6 2022/11/26 01:49
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ExcelVBAのユーザーフォームの...
-
ユーザーフォームを表示中にシ...
-
Hideについて(.NET)
-
Form_Load と Form_Activate の...
-
エクセルVBAのフォームを最...
-
ユーザーフォーム上に現在日時...
-
【VBAユーザーフォームで閉じる...
-
ユーザーフォームのラベルに時...
-
MSGBOXのフォント大きさ変更
-
コントロールの存在確認
-
Microsoft Formsの「個人情報や...
-
VBAでユーザーフォームを再表示...
-
フォームのテキストボックスな...
-
ACCESSのフォーム、開くんです...
-
アクセス2013 フォームが...
-
エクセルのチェックボックスの...
-
ExcelVBAのユーザーフォームでe...
-
ユーザーフォームのテキストボ...
-
クリックイベントなのに、2回ク...
-
フォームのアクティブと非アク...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ユーザーフォームを表示中にシ...
-
クリックイベントなのに、2回ク...
-
ExcelVBAのユーザーフォームの...
-
ユーザーフォームのテキストボ...
-
Microsoft Formsの「個人情報や...
-
ユーザーフォーム上に現在日時...
-
Form_Load と Form_Activate の...
-
モーダルフォームとモードレス...
-
Excelにて、ユーザーフォームで...
-
VBAでユーザーフォームを再表示...
-
【VBAユーザーフォームで閉じる...
-
MSGBOXのフォント大きさ変更
-
VBA(エクセル)のユーザー...
-
Hideについて(.NET)
-
エクセルVBAのフォームを最...
-
コントロールの存在確認
-
ACCESSのフォーム、開くんです...
-
'ユーザーフォーム右上隅の[×...
-
フォームウィンドウを最前面に...
-
ユーザーフォームのラベルに時...
おすすめ情報