• 締切済み

Application.OnKey:項目入力中のFKEY変更

EXCELのVBAにて、Application.OnKeyを使用して、FKEYの機能を変更しました。 Application.OnKey "{F1}", "Sheet1_F1" 但し、TABで項目移動後は機能するのですが、項目入力途中に「F1」を押すと、変更前の機能である「HELP」が効いてしまいます。 これを、回避する方法はありますか?

  • 9_chan
  • お礼率81% (170/208)

みんなの回答

  • kiki_s
  • ベストアンサー率59% (147/248)
回答No.1

通常はヘルプ表示のファンクションキーを別の事に利用する訳ですね? では、「Application.OnKey "{F1}", "Sheet1_F1"」 は、 どこに書かれているのでしょうか? シート?標準モジュール? また、「Sheet1_F1」は標準モジュールに書かれたプロシージャでしょうか? それに、書式の問題もあります。 EXCELを起動後、終了するまでキーの機能変更を有効にするには、 標準モジュールに書かれたプロシージャでなければいけません。 また、auto_openで書かなければ最初から機能しなかったと思います。 'ヘルプキー無効にする例 Sub auto_open() Application.OnKey "{F1}", "TEST" End Sub Sub TEST() MsgBox "ヘルプ無効" End Sub 記載するのは標準モジュール1つで構いません。 上記のコードを標準モジュールにコピーして保存後、EXCELを再起動させて「F1キー」を押して見て下さい。 (マクロを有効にするのをお忘れ無く) 今回の場合は、Application.OnKey "{F1}", "Sheet1_F1" ですが・・・ auto_open()というサブプロシジャーは、エクセル起動時に実行が予約されている名前で、 VBAとしてはブックが開かれた時、一度だけ実行します。 エクセル本来の機能に戻すには、 Application.Onkey "{F1}" と、プロシージャの部分を省略すると、エクセルの通常の機能へ戻るのですが、 面倒であれば、そのままエクセル自体を終了すれば問題ありません。 ただし、上記VBAを含むブックを読み込んだエクセル自体を終了せずに、 VBAを含まない、別のブックを読み込んでも機能はキャンセルされませんので注意が必要です。 'ブックのみを閉じる時、ヘルプキーを有効にする例 Sub auto_close() Application.OnKey "{F1}" End Sub 上記はブックを閉じる時ですが、考え方は、auto_open()と同じです。 auto_open、auto_close は、特定のブックで初期設定や自動保存など 便利に使える(正常起動、正常終了の場合ですが)ものですが、 扱いには注意して下さい。 さわらなくて良いメニューまで非表示にしてしまった経験者です(^^;;

9_chan
質問者

補足

Application.OnKey "{F1}", "Sheet1_F1"  は、auto_open() に記述しています。 説明がわかりづらかったようです。 [Tab][Enter]で各項目に移動した直後は [F1] を押すと、Sheet1_F1 を実行するのですが、各項目上で入力途中で("1"と入力した直後に) [F1] を押すと、なぜか、ヘルプが起動してしまうのです。

関連するQ&A

  • エクセルでリスト変更時、他の項目も変更したい

    エクセルでリスト項目に「不要」と「必要」の2種類を準備しています。 先頭のリスト項目を「不要」から「必要」に変更するとそれに連動して2行目移行の項目も、その行の数量項目にが0以外の数字が入力されている行のみ「必要」に変更させたいです。 作成途中のエクセルシートを引き継いで完成させることになったのですが、一部だけ上記機能が入っており、残りのシートにも同様にこの機能を入れたいのですが、わかりません。 宜しくお願いします。

  • VBAでエクセル内の情報を他のアプリケーションへ自動入力したいです

    業務効率を上げるために、VBAでエクセル内の情報を他のアプリケーションに自動入力させたいです。 入力する情報は、複数の項目があり、固定されています。 できれば、ワンクリックですべての入力フォームに自動入力させたいです。 これらのことは、VBAで実現可能なのでしょうか? また、実現可能な場合、どのようにすればよろしいのでしょうか? VBAを始めたばかりで何が出来て何が出来ないか、あまりわかっておりません。 VBAを習熟している方にとっては、簡単に質問であるかも知れませんが、どうぞご教授ください。 よろしくお願いいたします。

  • エクセルの入力に関する質問です。リスト設定してあるセルまでタブで移動し

    エクセルの入力に関する質問です。リスト設定してあるセルまでタブで移動したら、Alt+↓キーで選択できる事が分かったのですが、sheetにVBAを設定する事で自動的に▼が押下されている状態を作ることはできないでしょうか。

  • エクセルで別のシートに同じ項目を横に入力したい

    エクセルのシート1に縦で項目を入力していますが シート2には同じ項目を今度は横に入力したいので コピーの形式を使って、の行列を入れ替える以外で 関数を使った簡単ないい方法はありませんか?

  • 表の中でタブを入力したい(MS-Word2007)

    表の中でタブを入力したい(MS-Word2007)  Wordのヘルプで探しましたが、うまくみつかりません。表を編集しているとき、タブを入力しようと、タブキーを押すと、次の表に移動する機能が働いてしまいます。Excelで改行を入れるときは、ALT+改行でうまくいきますので、いくつかのキーとの組み合わせを試してみましたが、うまくいきません。対処療法として、別のところで入力したタブ文字をコピー&ペーストで入れている状態です。できたらキー操作でタブを入力したいです。方法をご存じの方お教えください。

  • Excelのような複数シートのあるアプリケーションを作りたい

    Excelのような複数シートのあるアプリケーションを作りたい Excelのような複数シートのあるアプリケーションを作りたいのですが、 これはどのようにすればよいのでしょうか?(.NET) コントロールがあるなど、簡単にできるのでしょうか? それとも工夫して自作していかなければならないのでしょうか? 「Excel シート vb」などを検索してもVBAの話のサイトばかり出てくるので 困っております。 参考サイトなどありましたら教えてください。 よろしくお願いします。

  • Excel_シートラベルの非表示方法

    Excelの「Sheet1」や「Sheet2」といったシート名が表示されているタブを VBAを使って非表示にしたいのですが ヘルプを読んでも、どのプロパティをいじくればいいのか発見できず わかりませんでした。 ご存知の方よろしくお願いしいたします<(_ _)>

  • エクセル、入力規則のドロップダウンリストの表示文字サイズを変更するには?

     エクセルシートにて、セルに入力規則を設けて誤入力がないようにしているのですが、表示されるドロップダウンリストの表示文字サイズが小さくて、見にくいのです。  先ほどから、ヘルプを見て設定を変更しようしていますが、上手く行きません。  ヘルプの解説文はいつも抽象的で分かりにくく、エクセル2003になって少しはマシになりましたが、2000では初級者には非常に分かりにくいです。  どなたか、教えていただけませんか?

  • エクセル 未入力セルがあると保存できない設定

    エクセルVBAで、入力必須項目を設定し、未入力セルがある場合は保存ができないようにしたいのですが教えていただけませんか。 ブックには複数シートが存在し、入力必須項目を設定したいのはsheet1のみ。 sheet1のA1,A5, A9, B1, B5, B9の6つのセルはすべて必須入力。 未入力がある場合はファイルを閉じる時に保存が出来ないようにする。 出来ればどのセルが未入力なのかエラーメッセージが出るとベスト。 6項目すべて入力できていれば通常通りファイル保存して閉じることができる。 このブック作成者がブック作成、変更ができるようにしたい(ファイルを作成、変更する時はブランクなのでエラーメッセージが出てファイル保存ができないため)。

  • word/excelで入力必須の項目を作れますか?

    こんにちは。 wordまたはexcelでアンケートフォームを作成したいと思います。 その中で、入力必須の項目を作りたいと思います。 「名前」「住所」等、必須項目を入力しないと保存できないような 機能をご存知でしょうか? 宜しくお願いします。

専門家に質問してみよう