【VBA】コンボボックスで絞りこみ検索する【部分一致で抽出してForとIfで検索する】

แชร์
ฝัง
  • เผยแพร่เมื่อ 3 ก.พ. 2025

ความคิดเห็น • 5

  • @TAIRA633
    @TAIRA633 2 ปีที่แล้ว +1

    KeyCode = 0 でコンボボックスが
    フォーカスされる旨、解説をお願い出来ますでしょうか。
    KeyCodeが全く分かりません。

    • @IT-gx8sf
      @IT-gx8sf  2 ปีที่แล้ว

      コメントありがとうございます!
      「KeyCode」は、コンボボックス内で「押されたキー」が格納される変数になります。
      例えば、コンボボックス内で「Enterキー」を押すとKeyCodeには、Enterキーの変数である「vbKeyReturn」が格納されます。
      反対に、KeyCodeに「0」を入力すると、コンボボックスで値が何も押されていない状態である、初期状態にすることができます。つまり、コンボボックスがフォーカスされた状態にすることができます。
      コンボボックスをフォーカスする方法として、「.SetFocus」を使う方法もありますけども、うまく動作しない場合がありますので、「KeyCode=0」としてコンボボックスをフォーカスするといいです。
      参考になればと思います(^^)

    • @TAIRA633
      @TAIRA633 2 ปีที่แล้ว +1

      早速のご回答有り難うございます。
      ・keyCode = 0が有ると下記の機能が付く、という認識で合ってますか。

      検索値Aを入力

      リターンキー

      下向矢印

      青色を移動

      リターンで在庫管理フォームに反映
      ・フォーカスとはコンボボックスの左端に縦線がある状態でしょうか。

    • @IT-gx8sf
      @IT-gx8sf  2 ปีที่แล้ว

      @@TAIRA633
      コメントありがとうございます!
      ■ご質問内容①
      「・フォーカスとはコンボボックスの左端に縦線がある状態でしょうか。」
      ご指摘のとおりで、フォーカスとはコンボボックスの左端に縦線がある状態になります。
      コンボボックスにフォーカスしている状態だと、キーボードで文字を入力した際に、すぐにコンボボックスに値を入力することができる状態です。
      ■ご質問内容②
      「・keyCode = 0が有ると下記の機能が付く、という認識で合ってますか。

      検索値Aを入力

      リターンキー

      下向矢印

      青色を移動

      リターンで在庫管理フォームに反映」
      「KeyCode = 0」を使うことで、「検索値Aを入力 → リターンキー → コンボボックスをフォーカス → リストを表示」という流れを実行できるようにしています。
      さらに、コンボボックスの「リスト」のところでリターンキーを押した場合に、「在庫管理フォームに反映」ができるようにしています。
      〇 KeyCodeを追加した理由について
      「KeyCode = 0」は、コンボボックスをフォーカスするVBAコードになります。
      リストを表示するために「.DropDown」を使っているんですけど、「.DropDown」を表示するためには、コンボボックスをフォーカスしている必要があるみたいです(^^;)
      なので、コンボボックスをフォーカスするために「KeyCode = 0」を使ってコンボボックスをフォーカスしたあとに、「.DropDown」を使ってリストを表示しています。
      「.DropDown」のみでリストを表示できればシンプルなんですけど、試行錯誤で「KeyCode = 0」を追加してリストを表示できるようにしてみました(^^)
      コンボボックスは細かいことをしようとすると、少しクセのあるユーザーフォームですね。
      参考になればと思います。
      また、不明な点がございましたら、コメントいただけたらと思います(^^)

    • @TAIRA633
      @TAIRA633 2 ปีที่แล้ว +1

      @@IT-gx8sf おはようございます。早速のご返信を頂き有難うございます。
      Enterの後どうなるか、が本動画のキモかと思います。
      また動画を視聴してみます。いつもご教授ありがとうございます。