検索

キーワード


目次

【Excel VBA】検索して指定した文字が入力されているか確認する方法

  • 公開日:2020-12-01 09:59:17
  • 最終更新日:2021-03-03 23:19:34

Workteria(ワークテリア)では難易度の高いものから低いものまで、スキルや経験に合わせた案件を多数揃えています。会員登録は無料ですので、ぜひ会員登録してご希望の案件を探してみてください!

フリーランス/正社員のエンジニアとして活躍するには、ご自身のスキルや経験に合わせた仕事を選ぶことが大切です。ご希望の案件がみつからない場合はお気軽にお問い合わせください!ユーザ満足度の高いキャリアコンサルタントが在籍していますので、希望条件や悩み事などなんでもご相談ください。ご希望にピッタリの案件をご紹介させていただきます。

はじめに

みなさんこんにちは、IMMRです。


以下のようなブック内のセルに入力された文字の検索をする時は、どうしていますか。

文字を検索する方法の一つが下記になります。


図1 ブック(参加者リストが記載されている)

参加者リスト


ブック内で行うときは、普通に検索をすると思います。(ここでは、石塚さんを検索しております)


図2 ブック(参加者リストの中で石塚さんを検索)

検索操作


では、VBAではどのように検索を行いますか。

For Nextステートメント等の繰り返し処理を使用して、1つ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は見つかった時です。そのため、見つかったときの処理になります。



2.検索して指定した文字が入力されているか確認する方法のサンプルコード

検索して指定した文字が入力されているか確認する方法のサンプルコードは以下になります。


サンプルコード

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.検索して指定した文字が入力されているか確認する方法実行

では実際に上記、コードを使用して、検索して指定した文字が入力されているか確認します


まず、インプットボックスが表示されました。


図3 ブック(インプットボックス表示)

インプットボックス



ここで"石塚"と入力して、OKを押します。


図4 ブック(インプットボックス入力)

インプットボックス入力



見つかったので"見つかりました"とメッセージボックスで表示されました。


図5 ブック(Find検索結果[見つかった])

検索結果


確認をすると確かにあります。


図6 ブック(Findで見つかった場合)

検索結果


検索が出来ています。


ちなみに記載されていない名前を入力します。


図7 ブック(インプットボックス入力)

インプットボックス入力


記載されてないので"見つかりません"と表示されます。


図8 ブック(Findで見つからなかった場合)

検索結果



【著者】

Imamura

「挑戦心」を忘れずに、新しいことにチャレンジしています。 資格:VBAエキスパート Excel VBA(ベーシック/スタンダード) 等

編集した記事一覧

正社員/フリーランスの方でこのようなお悩みありませんか?

  • 自分に合う案件を定期的に紹介してもらいたい
  • 週2、リモートワークなど自由な働き方をしてみたい
  • 面倒な案件探し・契約周りは任せて仕事に集中したい

そのような方はぜひ、Workteriaサイトをご利用ください!

  • 定期的にご本人に合う高額案件を紹介

  • リモートワークなど自由な働き方ができる案件多数

  • 専属エージェントが契約や請求をトータルサポート

よく読まれている記事