Vba: 2 つの文字の間のテキストを抽出する方法
VBA で次のカスタム関数を作成して、2 つの特定の文字の間のテキストを抽出できます。
Function ExtractBetween(this_text, start_char, end_char) StartPosition = InStr(this_text, start_char) EndPosition = InStr(this_text, end_char) ExtractBetween = Mid(this_text, StartPosition + 1, EndPosition - StartPosition - 1) End Function
この関数を使用すると、Excel で 2 つの特定の文字の間のテキストを特定の文字に抽出できます。
次の例は、この関数を実際に使用する方法を示しています。
例: VBA を使用して 2 文字間のテキストを抽出する
企業内のさまざまな製品の ID 値と総売上高を含む次のデータ セットが Excel にあるとします。
VBA を使用して、列 A の各セルの括弧内のテキストを抽出し、その結果を列 C に返したいとします。
これを行うために次の関数を作成できます。
Function ExtractBetween(this_text, start_char, end_char) StartPosition = InStr(this_text, start_char) EndPosition = InStr(this_text, end_char) ExtractBetween = Mid(this_text, StartPosition + 1, EndPosition - StartPosition - 1) End Function
次に、セルC2に次の数式を入力して、セルA2のテキストのかっこ内のテキストを抽出します。
=ExtractBetween( A2 , "(", ")")
次に、この数式をクリックして、列 C の残りの各セルにドラッグします。
列 C には、列 A の一致するセルごとに括弧内のテキストが表示されます。
注: この数式は、VBA のInstr関数を使用して特定の開始文字と終了文字の位置を抽出し、次にMid関数を使用してこれら 2 つの文字の間にあるすべてのテキストを返すことによって機能します。
追加リソース
次のチュートリアルでは、VBA を使用して他の一般的なタスクを実行する方法について説明します。
VBA: 文字列内の文字の出現を数える方法
VBA: 文字列に別の文字列が含まれているかどうかを確認する方法
VBA: 特定のテキストを含むセルを数える方法