|
こんばんは。
新規ブックに以下の仕様でユーザーフォームを作成してください。
ユーザーフォーム---Userform1
テキストボックス Textbox1
コマンドボタン Commandbutton1
つまり、テキストボックスとコマンドボタンをそれぞれ一つ配置した
ユーザーフォームです。
このフォームを表示した後、Ctrl+aでアクティブ・非アクティブの切り替え
を行うことを考えます。
コードは、標準モジュールに
'===============================================================
Sub main()
UserForm1.Show vbModeless
End Sub
'=================================================================
Sub app_form()
AppActivate UserForm1.Caption
End Sub
'================================================================
Sub settei()
Application.OnKey "^a", "app_form"
End Sub
Userform1のモジュールに
'================================================================
Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
If Shift = 2 And KeyCode = 65 Then
AppActivate Application.ActiveWindow.Caption
End If
End Sub
'================================================================
Private Sub UserForm_Initialize()
With CommandButton1
.TabStop = False
.TakeFocusOnClick = False
End With
End Sub
これで、事前にプロシジャー「settei」を実行した後、
プロシジャー「main」を実行して、ユーザーフォームを表示させた後に
Ctrl+aでアクティブ・非アクティブになるか確認してください。
尚、標準モジュールに
'=============================================================
Sub kaijo()
Application.OnKey "^a", ""
End Sub
で割り当てたマクロ実行を解除できます。
試してみてください。
|
|