2017-01-20 1 views
5

私のExcelプログラムに自分のヘルプファイルを持っています。VBAモードレスフォームでファンクションキーが停止する

Private Sub Workbook_Open() 

私は、Excelシート上だときに動作しますが、私のアプリケーションがモードレスに表示されているフルスクリーンメインユーザーフォームに基づいていることを

Application.OnKey "{F1}", "Help" 

を持っています。

ユーザーフォームが表示されると、何らかの形でF1キーがブロックされ、マクロは起動しません。

私は、モードレスフォームがコードの実行をブロックしていないと考えました。

このヒントはどのようにすればいいですか?

答えて

5

keyDownイベントをユーザーフォーム自体にトラップする必要があります。 UserFormがフォーカスを取得したとき、それを押すキーはUserFormに移動します。

'/UserForm1 is a sample name. 

Private Sub UserForm_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer) 
    If KeyCode = 112 Then '/ F1 
     Call Help 
    End If 
End Sub 
+1

コードが役に立ちます。 – harun24hr

+0

それを執行していませんでしたか?ありがとうございました Unfortunatellyこれは、仕事をしません 私は 'Keydown'の' KeyUp'と 'KeyPress'を捕まえようとしました。フルスクリーンで表示されたフォームでキーボードを使用すると、いずれも起動しません。 フォームにフォーカスがないように見えます。 より。フルスクリーンで表示されるフォームがあります。 フォーム上の画像のカップルと、大きなフレームにいくつかのコントロールがあります。 それだけです。 – Sphinx

関連する問題