【Excel/VBA】指定した文字の間を抽出する

記事
IT・テクノロジー
みなさんこんにちは。

イプシロンです。

VBAではセルの情報を引っ張って文字列操作するという作業が多く発生します。

Left関数やRight関数等、文字列系の関数を駆使して自分がやりたい
文字列操作を実現させることが腕の見せどころであります。

今回は、特定の文字の間の文字列を抽出するコードについて書きます。
私は、スクレイピングでよく使用するため、備忘録としてご活用ください。

コード内容


'///////////////////////////////////////////////////////////////
' Mainの関数
'///////////////////////////////////////////////////////////////
Sub main()
    Dim str1 As String
    Dim str2 As String
    str1 = "りんごちゃん「わたしはりんごが大好きです。」と言いました。"
    ' 第一引数:抽出下の文字列
    ' 第二引数:抽出したい先頭の文字列
    ' 第三引数:抽出したい末尾の文字列
    str2 = StringExtraction(str1, "「", "」")
    Debug.Print str2 ' 出力結果 ”わたしはりんごが大好きです。”
End Sub
'///////////////////////////////////////////////////////////////
' 囲まれた範囲内の文字を抽出する
'///////////////////////////////////////////////////////////////
Function StringExtraction(ByVal text As String, ByVal startChar As String, ByVal endChar As String) As String
    Dim l As Long
    Dim r As Long
    l = InStr(text, startChar)
    r = InStrRev(text, endChar)
    StringExtraction = Mid(text, l + 1, r - l - 1)
End Function

ものすごく小ネタですが、
覚えておくと良いかと思います。

最後まで読んでいただきありがとうございました。

では ノシ
サービス数40万件のスキルマーケット、あなたにぴったりのサービスを探す