Excel VBAを使って、「文字列の中に特定の語句が含まれているかを調べたい」という場面はよくあります。
例えば、セルの内容に「○○」という言葉が含まれていたら処理を実行したい、といった場合です。
今回は、そうした条件分岐に役立つ InStr()
関数の基本的な使い方をご紹介いたします。
InStr関数とは?
InStr
関数は、指定した文字列の中に別の文字列が含まれているかどうかを判定するための関数です。
構文は次のようになります。
InStr(文字列1, 文字列2)
- 文字列1の中に、文字列2が存在する位置を返します。
- 含まれていれば1以上の値、含まれていなければ0を返します。
使用例:特定の語句が含まれているかを調べる
以下は、「ノルウェーの森
」という文字列に「森
」という語句が含まれているかをチェックする例です。
Sub CheckIfTextExists()
Dim raretsu As String
Dim shitei As String
raretsu = "ノルウェーの森"
shitei = "森"
' raretsu の中に shitei が含まれているか確認
If InStr(raretsu, shitei) > 0 Then
MsgBox "含まれています。", vbInformation
Else
MsgBox "含まれていません。確認してください。", vbExclamation
End If
End Sub
結果と処理の流れ
InStr("ノルウェーの森", "森")
の戻り値は 7(7文字目に”森”がある)- よって
InStr(...) > 0
の条件は True となり、「含まれています。」と表示されます
よくある誤り:引数の順番に注意
InStr
関数では、**最初の引数が「調べられる側(対象)」**で、**2つ目が「調べたい文字列」**です。
誤って以下のように記述してしまうと、正しい結果が得られません。
If InStr(shitei, raretsu) > 0 Then ' ← 順番が逆
正しくは、下記のように**「対象文字列, 探す文字列」**の順で指定してください。
If InStr(raretsu, shitei) > 0 Then
応用:セルの中身に特定語句が含まれていたら色を変える
以下のようにすれば、特定の語が含まれていたセルのフォントを赤色に変更するといった処理も可能です。
Sub ChangeFontColorIfFound()
Dim targetCell As Range
Set targetCell = Range("A1")
If InStr(targetCell.Value, "重要") > 0 Then
targetCell.Font.Color = RGB(255, 0, 0) ' 赤文字にする
End If
End Sub
まとめ
InStr()
関数を使えば、特定の語句が含まれているかどうかを簡単にチェックできます。
条件分岐(If
文)と組み合わせれば、以下のような処理が実現可能です。
- 含まれていれば警告を出す
- 特定のセルの書式を変更する
- 特定文字列がある行だけ別処理を行う
文字列操作はVBAで非常によく使われる処理ですので、InStr
の使い方はぜひ覚えておきましょう。
スクールの紹介
【アイデミー】AIを学んで一発逆転のキャリアチェンジ!
最後に宣伝をさせてください。
夢見るAIエンジニアへ、今こそ一歩を踏み出せ!
最近、AI技術やデータサイエンスに興味を持ち始めたあなた。将来、AIエンジニアやデータサイエンティストとして活躍したいと考えているかもしれません。また、AIを使って業務課題や研究課題を解決したい、あるいは教養としてAIの知識を深めたいと思っている方もいるでしょう。
しかし、学び始めるとなると「どこから手をつけて良いのか分からない」「専門的すぎて理解できない」といった悩みが生じることも。そんなあなたのために、この3ヶ月間集中してAIプログラミングを習得するオンラインコーチングサービスがオススメです!
なぜこのサービスが選ばれるのか?その理由はこちら
- 初心者から上級者まで
完全なプログラミング初心者から研究者まで、幅広い方々に優良なコンテンツが提供されます。 - 徹底的な進捗管理
受講者の進捗をしっかりとチェックし、つまずきやすいポイントでのフォローが万全です。 - 専属メンターによる徹底サポート
AIの学び方から、実際の適用まで、専属のメンターが手厚くサポートします。 - 場所を選ばず学べるオンライン完結
東京以外の地域からも、気軽に学び始めることができます。
信頼の実績多数!
・日本最大級のプログラミングスクール実績
・受講者総数700名以上
・SaaS型学習サービス会員65,000名以上
・企業導入実績120社以上
・グッドデザイン賞受賞
・著名な賞受賞歴や経団連加盟も実現
夢を叶えるための第一歩を、一緒に踏み出しませんか?今なら、あなたもその一員として学び始めることができます!