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(エクセル)
-
Excel2016 検索の窓を常時表示させたいのですが、教えてください。
Excel(エクセル)
-
【エクセルで一発検索機能をつくる】
Excel(エクセル)
-
-
4
エクセル ブックを開いたときに検索ウインドを表示させたい
Excel(エクセル)
-
5
excelでマクロを用いた検索エンジンを作成したい
Excel(エクセル)
-
6
【エクセル】フリーワード検索用の検索窓を作りたいです。その検索結果を一覧で表示させたいです。
Excel(エクセル)
-
7
【エクセル】検索ボタンを作りたいです。
Excel(エクセル)
-
8
エクセルで検索窓のようなものを作る
Excel(エクセル)
-
9
検索関数を使って検索窓を作成したいんですが・・・
その他(Microsoft Office)
-
10
エクセルの検索窓で毎回検索場所のブックを選択するのが面倒
Excel(エクセル)
-
11
Excelで検索ボタンを作るには
Excel(エクセル)
-
12
[Ctrl]+FをVBAで表現
Visual Basic(VBA)
-
13
エクセルVBAで、条件に一致するセルへ移動
Excel(エクセル)
-
14
Enterキーでマクロを起動さす。
その他(ソフトウェア)
-
15
エクセルファイルを開く時、常に同じシートから開くようにするには?
Windows Vista・XP
-
16
テキストボックス(VBA)でEnterを押したときに作動するマクロ
Access(アクセス)
-
17
セル内の一部の文字だけをハイパーリンクに設定したい
Excel(エクセル)
-
18
あるセルに特定の文字列を打つと、他のセルに決められた文字が自動入力するように
Excel(エクセル)
-
19
時間表記hour等の正しい省略表記を教えて下さい。
英語
-
20
VLOOKUP関数について、文字列と数値の問題
Excel(エクセル)
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ローマ字→カタカナへ変換(エク...
-
マクロ 実行ボタンを押さずに...
-
EXCELのセルへ、デジタル時計を...
-
Excelのワークシート上に検索窓...
-
Excelを開いた時に表示さ...
-
複数ファイルにある特定のシー...
-
AccessのテーブルデータをExcel...
-
ワードからエクセルへ貼り付け...
-
Excel VBA のdebug(F8キー) が...
-
【Excel VBA】エラー番号400
-
モジュール内のマクロを全て実...
-
ワードで画像を自動で挿入する方法
-
エクセル 自動で別シートへ並...
-
エクセル グラフの軸の最小値最...
-
Excelマクロでオプションボタン...
-
エクセル テキスト追加マクロ...
-
TeraTermのマクロについて
-
エラーになってないのにVBA...
-
VBAでEXCELに埋め込んだPDFを開...
-
Wordのアンケート用紙に通し番...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ローマ字→カタカナへ変換(エク...
-
マクロ 実行ボタンを押さずに...
-
複数ファイルにある特定のシー...
-
Excel VBA のdebug(F8キー) が...
-
EXCELのセルへ、デジタル時計を...
-
エラーになってないのにVBA...
-
Excelを開いた時に表示さ...
-
Excelのワークシート上に検索窓...
-
【Excel VBA】エラー番号400
-
ワードからエクセルへ貼り付け...
-
Excelマクロでオプションボタン...
-
エクセルのマクロ機能で前のシ...
-
エクセルで複数のシートをまと...
-
Wordの画面を左右にスクロール...
-
エクセル グラフの軸の最小値最...
-
マクロ ブックをマクロなしでコ...
-
EXCEL 複数のシートの同一の位...
-
モジュール内のマクロを全て実...
-
Wordで「原稿用紙○枚」を換算す...
-
TeraTermのマクロについて
おすすめ情報