【Excel VBA】If Elseとは違う条件式(Select Case)について
エンジニアのIMMRです。Excel VBAの条件式には、以前に説明したExcel VBA 条件式(If Else)とこれから説明するSelect Caseの二つあります。1.従来のIf Else条件式If Elseは条件に合った時は処理Aを、条件に合わなかったら処理Bを実行します。では、下記のようなデータがあり、複数の条件があるとします。If Elseを使用して作成すると2種類の方法が浮かぶと思
Workteria(ワークテリア)では難易度の高いものから低いものまで、スキルや経験に合わせた案件を多数揃えています。会員登録は無料ですので、ぜひ会員登録してご希望の案件を探してみてください!
フリーランス/正社員のエンジニアとして活躍するには、ご自身のスキルや経験に合わせた仕事を選ぶことが大切です。ご希望の案件がみつからない場合はお気軽にお問い合わせください!ユーザ満足度の高いキャリアコンサルタントが在籍していますので、希望条件や悩み事などなんでもご相談ください。ご希望にピッタリの案件をご紹介させていただきます。
みなさんこんにちは、IMMRです。
以下のようなブック内のセルに入力された文字の検索をする時は、どうしていますか。
文字を検索する方法の一つが下記になります。
図1 ブック(参加者リストが記載されている)
ブック内で行うときは、普通に検索をすると思います。(ここでは、石塚さんを検索しております)
図2 ブック(参加者リストの中で石塚さんを検索)
では、VBAではどのように検索を行いますか。
For Nextステートメント等の繰り返し処理を使用して、1つ1つのセルに対して、 "=" を使っていく方法でも出来ますが
データ数多い場合は処理時間がかかってしまう時があります。
ここでは、セルを検索する方法を説明します。
検索して指定した文字が入力されているか確認するために使われるのがFindメソッドです。
Dim 検索結果を取得する変数 As Range
Set 検索結果を取得する変数 = Range(検索場所).Find(What:=検索Key)
If 検索結果を取得する変数 Is Nothing Then
検索して、見つからなかった時の処理
Else
検索して、見つかった時の処理
End If
・まずは検索して見つかったのか、見つからないのか、の結果を取得するための変数を宣言します。
結果は、Rangeオブジェクトで返されるので、型はRangeオブジェクトになります。
・検索Keyで検索場所を検索して、その結果を先ほど指定した変数に格納されます。
・Ifステートメントで結果が格納された変数を確認するのですが、
Is Nothingは見つからなかった時です。 そのため、見つからなかった時の処理になります。
逆にElseは見つかった時です。そのため、見つかったときの処理になります。
検索して指定した文字が入力されているか確認する方法のサンプルコードは以下になります。
サンプルコード
Sub test16()
Dim Find_Data As Range
Dim Find_Name As String
Find_Name = InputBox("ここに名前を記入してください")
Set Find_Data = Range("B:B").Find(What:=Find_Name)
If Find_Data Is Nothing Then
MsgBox "見つかりません"
Else
MsgBox "見つかりました"
End If
End Sub
・見つかった、見つからなかった時の結果を取得する変数は、Find_Dataで宣言しています。
・検索する文字を取得する変数をFind_Nameで宣言しています。
・InputBoxを使用して、入力された文字がFind_Nameに格納されます。
・Find_Nameに格納された文字で指定したB列を検索し、結果をFind_Dataに格納されます。
・Find_Dataに格納された検索結果より、見つからない場合は"見つかりません"
見つかった場合は"みつかりました。"とメッセージボックスで表示されます。
では実際に上記、コードを使用して、検索して指定した文字が入力されているか確認します。
まず、インプットボックスが表示されました。
図3 ブック(インプットボックス表示)
ここで"石塚"と入力して、OKを押します。
図4 ブック(インプットボックス入力)
見つかったので"見つかりました"とメッセージボックスで表示されました。
図5 ブック(Find検索結果[見つかった])
確認をすると確かにあります。
図6 ブック(Findで見つかった場合)
検索が出来ています。
ちなみに記載されていない名前を入力します。
図7 ブック(インプットボックス入力)
記載されてないので"見つかりません"と表示されます。
図8 ブック(Findで見つからなかった場合)
そのような方はぜひ、Workteriaサイトをご利用ください!
定期的にご本人に合う高額案件を紹介
リモートワークなど自由な働き方ができる案件多数
専属エージェントが契約や請求をトータルサポート