Warning: The magic method InvisibleReCaptcha\MchLib\Plugin\MchBasePublicPlugin::__wakeup() must have public visibility in /home/c3541351/public_html/guakw.info/wp-content/plugins/invisible-recaptcha/includes/plugin/MchBasePublicPlugin.php on line 37
「特定の文字が含まれているか」をVBAで一瞬で判定!InStrとInStrRevの超入門ガイド | ぐー@高配当株ブログ

「特定の文字が含まれているか」をVBAで一瞬で判定!InStrとInStrRevの超入門ガイド

【業務効率化】VBA
スポンサーリンク

こんにちは、ぐーです! 

今回は、プログラミングに苦手意識がある方でも今日からすぐに活用できる、VBAの文字列検索関数「InStr(インストリング)」と「InStrRev(インストリング・リバース)」の使い方を解説します。

【業務効率化】VBAの記事を見る

InStr関数とは?(本の中の探したい言葉を見つける案内人)

InStr関数は、ひと言でいうと「指定した文字が、左から数えて何番目にあるか?」を教えてくれる関数です。

WordやExcelで「Ctrl + F」を押して文字を検索しますよね?あれをVBAに自動でやってもらうイメージです。

InStr関数は「対象の文字列の中から特定のキーワードを検索し、最初に見つかった位置(先頭からの文字数)を数値で返す」という役割を持っています。

百聞は一見に如かず。実際にコピペして動かせるコードを見てみましょう。

【コード例】InStr関数(左から探す)

Sub CheckString()
    Dim targetText As String
    Dim searchWord As String
    Dim position As Integer
   
    ' 検索される側の文字を設定します
    targetText = "東京都渋谷区道玄坂"
    ' 探したい文字を設定します
    searchWord = "渋谷"
   
    ' InStr関数で「渋谷」が何文字目にあるかを探します
    position = InStr(targetText, searchWord)
   
    ' 結果を判定します(見つかった場合は1以上の数字が入ります)
    If position > 0 Then
        MsgBox position & "文字目に見つかりました!"
    Else
        MsgBox "見つかりませんでした。"
    End If
End Sub

このコードを実行すると、「東京都渋谷区」の「渋」は4文字目にあるため、「4文字目に見つかりました!」というメッセージが表示されます。

もしキーワードが見つからなかった場合は「0」が返ってくるので、判定も非常にスムーズに行えます。

右から探したい時は「InStrRev」の出番!

InStr関数が「玄関(左)」から探し始めるのに対し、「裏口(右)」から探し始めてくれるのが「InStrRev関数」です。

「え?右から探す意味ってあるの?」と思うかもしれません。実はこれ、「ファイル名から拡張子(.xlsx や .pdf など)だけを取り出したい時」にめちゃくちゃ役立ちます!

【コード例】InStrRev関数(右から探す)

Sub GetFileExtension()
    Dim fileName As String
    Dim searchWord As String
    Dim position As Integer
   
    ' ファイル名を設定します
    fileName = "sales_report_2026_final.xlsx"
    ' 探したい文字(ピリオド)を設定します
    searchWord = "."
   
    ' InStrRev関数で右側から「.」を探します
    position = InStrRev(fileName, searchWord)
   
    ' 見つかった場合、その場所から後ろの文字(拡張子)を取り出します
    If position > 0 Then
        ' Mid関数を使って、ピリオドの次の文字から最後までを切り取ります
        MsgBox "このファイルの拡張子は " & Mid(fileName, position + 1) & " です!"
    Else
        MsgBox "拡張子がありません。"
    End If
End Sub

ファイル名には「report_ver.1.2.xlsx」のように、ピリオドが複数含まれるケースがあります。
左から探すと最初のピリオドで止まってしまいますが、右から探せば確実に「一番最後のピリオド(=拡張子の直前)」を特定できるのです。

まとめ:関数を味方につけよう

いかがでしたでしょうか? 

「InStr」と「InStrRev」を使い分けることで、特定の文字が含まれているかを一瞬で判定できるようになります。

  • InStr: 左から探す(特定のキーワードが含まれているかのチェックに最適)
  • InStrRev: 右から探す(ファイルの拡張子特定などに最適)

プログラミングは難しく捉えられがちですが、その本質は私たちが普段行っている「探す」という作業の自動化にあります。

ぜひ今回のコードを日々の業務に取り入れて、面倒な目視チェックの時間を少しずつ減らしてみてください!

【業務効率化】VBAの記事を見る


VBAを独学で学び、業務自動化に5年以上携わってきた私が、「本当に実務で役立った!」と感じた2冊を紹介します。 もう本選びで失敗したくない方は、よければ参考にしてみてください。

この記事を書いた人
ぐー

手取り15万円の会社員でも、年間100万円以上の節約・資産管理・スキルアップで新NISAで年間360万円投資し、iDeCoもフル活用しています。日商簿記3級持っています。

このブログでは、私が実践してきた節約術やリアルな資産運用、稼ぐ力を高めるITスキルについて発信しています。

生活を豊かにしたくて、高配当株投資で年間配当金60万円をめざしています。現在は年間配当金25万円以上達成!

ゲーム・漫画・アニメなどが好きです。
一緒に資産形成をがんばりましょう!
よろしくお願いします!

ぐーをフォローする
【業務効率化】VBAITスキル
スポンサーリンク
ぐーをフォローする

コメント

タイトルとURLをコピーしました