まえきんブログ

2024/2/11~ WordPress版ブログへお引越ししました🖊(詳細はトップページ記事をご参照頂ければと存じますm(_ _)m)

【Excel VBA学習 #121】ユーザーフォームのテキストボックス内を検索する

まえきんです!

今回はユーザーフォームのテキストボックス内を

検索する方法について学習しましたのでご紹介します。

【ユーザーフォーム】

f:id:maekinblog:20210824211101p:plain

【コマンドボタンを押下した際のイベント処理】

f:id:maekinblog:20210824211124p:plain

動作確認のため、テキストボックスに任意の文字列(今回も例として「スキル

アップ」)を予め入力しておきます。この状態でコマンドボタンを押下すると

以下のような結果になります。

f:id:maekinblog:20210824211158p:plain

まずInStr関数で検索でヒットした文字列の位置を取得します。この関数は

第1引数で指定した文字列の中から、第2引数で指定した文字列を検索して、

見つかった位置を返します。 

(例)

InStr(第1引数,第2引数) ⇔   InStr(“ABCDE”,“B”)

第1引数(上記の例でいう“ABCDE”)には検索の対象となる文字列を指定します。

一方、第2引数(上記の例でいう“D”)には第1引数の中で検索する文字列を指定

します。この場合、関数の戻り値は2になります。

この性質を利用すると、戻り値が0より大きい場合は検索した文字列が見つかった

と判断することができます。今回は検索文字列が見つかった場合、該当の文字列を

選択状態にするマクロを考えているので、前回の#120で学習したテキストボックス内の

文字列を選択状態にするコードが流用できます。つまりはテキストボックスのSelStart

プロパティとSelLengthプロパティ、SetFocusメソッドが今回も登場します。

SelStartプロパティは選択する文字列の先頭位置、SelLengthプロパティは何文字

選択するかを指定するのでした。これらの仕込みをしておくことで、検索文字列

「スキル」が選択状態にできます!

次回#122は「リストボックスにデータを登録する Part1」

VBAコードについて学習予定です。

最後まで読んで頂きありがとうございました!ではまた!