

Excelのワークシート上に検索窓とボタンを作ろうとしています。
コントロールツールボックスからテキストボックスとコマンドボタンを1つずつ配置しました。ボタンを押すと検索用マクロが動作してテキストボックスに入力した文字を別のシート上から検索する仕組みです。計画どおりの動作をするようになったのですが、使い勝手についていくつか不満があるので解消したいのです。
1.検索窓のあるシートを開いたとき、カーソルがテキストボックス内にある状態にしたい。
2.カーソルがテキストボックス内にある状態でEnterキーを押すと、検索用マクロが動作するようにしたい。
3.カーソルがテキストボックス内にある状態でTabキーを押すと、コマンドボタンにフォーカスが移るようにしたい。
自分でも色々調べてみたのですが、どうにも分かりません。よろしくお願いします。
No.1ベストアンサー
- 回答日時:
こんにちは。
こういうのはユーザーフォームで作ったほうが簡単なんですが。
>1.検索窓のあるシートを開いたとき、カーソルがテキストボックス内にある状態にしたい。
これはシートのActivateイベントで、TextBox1.Activateするだけです。
>2.カーソルがテキストボックス内にある状態でEnterキーを押すと、検索用マクロが動作するようにしたい。
テキストボックスのKeyDownイベントで押されたキーを取得できる。
KeyDownイベントの引数KeyCodeには押されたキーコードが入りますからこれが13(=vbKeyReturn)だったら検索マクロを実行すれいいです。
>3.カーソルがテキストボックス内にある状態でTabキーを押すと、コマンドボタンにフォーカスが移るようにしたい。
同様にKeyDownイベントでTabが押されたことを取得して、コマンドボタンをアクティブにします。Tabキーのコードは9(=vbKeyTab)
Private Sub CommandButton1_Click()
検索マクロ
End Sub
Private Sub CommandButton1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
If KeyCode = vbKeyReturn Then 検索マクロ
End Sub
Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
If KeyCode = vbKeyReturn Then 検索マクロ
If KeyCode = vbKeyTab Then Me.CommandButton1.Activate
End Sub
Private Sub Worksheet_Activate()
Me.TextBox1.Activate
End Sub
ありがとうございます!
分かりやすく説明していただいて、すぐに実現できました。
おかげさまで検索窓がとても使いやすくなり、大満足です。
本当にありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 【Excel】指定のセル内容を基に別シートのセルを検索して選択する【VBA】 1 2022/06/16 16:16
- Visual Basic(VBA) 検索のユーザーフォームの表示について 1 2023/03/27 23:31
- Visual Basic(VBA) excel vba でユーザーフォーム入力ができない 2 2022/12/12 14:42
- Access(アクセス) アクセス 意図せずサブプロシージャを移動してしまうのを止めたい 1 2022/09/02 09:19
- Visual Basic(VBA) WordのVBAについて 5 2023/01/11 14:38
- Excel(エクセル) マクロVBAのフォルダ階層別で検索の方法 4 2022/04/03 23:23
- HTML・CSS 検索窓とcssハックについて 3 2022/04/22 12:21
- Excel(エクセル) マクロでボタンにつける名前がどこに設定されているかわからないケースがありました。 1 2023/06/19 19:37
- Access(アクセス) Access IF文でテーブルに存在しない場合の処理について 2 2022/10/10 18:09
- HTML・CSS 【html】検索ボックスを作りたい 4 2022/04/02 17:25
このQ&Aを見た人はこんなQ&Aも見ています
-
エクセル ブックを開いたときに検索ウインドを表示させたい
Excel(エクセル)
-
エクセルでの検索ボックスの作り方について
Excel(エクセル)
-
Excel2016 検索の窓を常時表示させたいのですが、教えてください。
Excel(エクセル)
-
-
4
【エクセル】フリーワード検索用の検索窓を作りたいです。その検索結果を一覧で表示させたいです。
Excel(エクセル)
-
5
エクセルの検索窓で毎回検索場所のブックを選択するのが面倒
Excel(エクセル)
-
6
エクセルVBAで、条件に一致するセルへ移動
Excel(エクセル)
-
7
VBA 検索して一致したセルへジャンプさせたい
その他(プログラミング・Web制作)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ローマ字→カタカナへ変換(エク...
-
マクロ 実行ボタンを押さずに...
-
複数ファイルにある特定のシー...
-
モジュール内のマクロを全て実...
-
Excelを開いた時に表示さ...
-
エクセル グラフの軸の最小値最...
-
エラーになってないのにVBA...
-
EXCELのセルへ、デジタル時計を...
-
EXCEL 複数のシートの同一の位...
-
Wordの画面を左右にスクロール...
-
Excelのワークシート上に検索窓...
-
PowerPointのマクロでは、スラ...
-
Excel VBA のdebug(F8キー) が...
-
「yes」なら実行させて「no」な...
-
ワードからエクセルへ貼り付け...
-
エクセル2016で、マクロの使い...
-
ExcelのSheet見出しタブで・・・
-
エクセルのマクロショートカッ...
-
エクセルでの単語集計について...
-
Excel マクロでマクロを含んだ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ローマ字→カタカナへ変換(エク...
-
マクロ 実行ボタンを押さずに...
-
Excelを開いた時に表示さ...
-
Excel VBA のdebug(F8キー) が...
-
エラーになってないのにVBA...
-
EXCELのセルへ、デジタル時計を...
-
複数ファイルにある特定のシー...
-
エクセル グラフの軸の最小値最...
-
モジュール内のマクロを全て実...
-
Wordの画面を左右にスクロール...
-
ワードからエクセルへ貼り付け...
-
エクセルのマクロ機能で前のシ...
-
EXCEL 複数のシートの同一の位...
-
Excelマクロでオプションボタン...
-
エクセルで複数のシートをまと...
-
VBAでEXCELに埋め込んだPDFを開...
-
【Excel VBA】エラー番号400
-
EXCEL2000 VBA マクロ実行中に...
-
エクセルでマクロ実行中に任意...
-
Wordで「原稿用紙○枚」を換算す...
おすすめ情報