ここから本文です

ファンクションキーでユーザーフォームを開く、ユーザーフォームのボタンを押す方...

cce********さん

2012/3/1722:35:32

ファンクションキーでユーザーフォームを開く、ユーザーフォームのボタンを押す方法を教えて下さい。

ファンクションキーでユーザーフォームを開く行為やユーザーフォーム上のボタンを押すという行為を行いたい。

質問は2点あります。

①F1キーでUserform1を開く
現在、エクセルシート上のボタン1をクリックするとuserform1が開くというマクロを設定しています。
それを、ショートカットキーではなくF1キーを押すことで実行したいと思い、
以下のようなコードを該当するシートのモジュールに記載しました。

Private Sub Worksheet_open()
If keycode = 112 Then
UserForm1.Show
End Sub

しかし、実際にF1を押すと通常のF1機能である「ヘルプの表示」が行われてしまいます。
これを解決する方法を教えて頂きたいです。

②F1キーでUserform1上の決定ボタン押したことにしたい。
上記のユーザーフォームなのですが、テキストボックスが10個くらいあり、
決定ボタンをクリックすると各テキストボックス内の内容がエクセルのセルに入力されるように設定しています。
そこで、ユーザーフォーム1が開いている状態でF1を押した時に、
決定ボタンを押した時と同じことが起こるようにしたいのですが、
そのようなことは可能でしょうか?
可能であればその方法をご教授頂きたいです。
現在のユーザーフォーム1のコードをテキストボックスが1つと仮定して書くと、
以下の通りです。

Private Sub CommandButton1_Click()
Dim Lastrow As Long
Lastrow = Range("A" & Rows.Count).End(xlUp).Row

Range("A" & Lastrow + 1).Value = textbox1.Value
End Sub


①で使っているF1キーが使えないのであれば他のファンクションキーでも構いません。

VBA初心者の為拙い文章で申し訳ございませんが、
宜しくお願い致します。

この質問は、活躍中のチエリアン・専門家に回答をリクエストしました。

閲覧数:
4,647
回答数:
1
お礼:
50枚

違反報告

ベストアンサーに選ばれた回答

kyo********さん

リクエストマッチ

2012/3/1802:43:27

標準モジュール 及び、ユーザーフォームに下記VBAを設定し、エクセル画面から 『 Sample 』 を1回実行すれば、以降 『 F1 』 キーを押すだけでフォーム呼出、A列へ Textbox1 テキストのデータ移動が可能になります。



★ 標準モジュール
*******************************************************
Sub Sample()
Application.OnKey "{F1}", "Sample2"
End Sub
Sub Sample2()
UserForm1.Show False
End Sub
*******************************************************





★ ユーザーフォーム内
*******************************************************
Private Sub TextBox1_KeyDown(ByVal KeyCode As _
MSForms.ReturnInteger, ByVal Shift As Integer)
If KeyCode = vbKeyF1 Then Cells(Rows.Count, 1). _
End(xlUp).Offset(1) = TextBox1.Text
End Sub
*******************************************************

質問した人からのコメント

2012/3/18 16:22:40

笑う お早い回答ありがとうございました!一度実行する必要があるのですね…
今回お聞きした2点、解決できました!本当にありがとうございました!

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる