【VBA】文字列の編集
VBAでの文字列の抽出と置換の方法です。
()内の文字列だけ抽出する
①Mid で文字列から特定の部分を抽出します。
②Instr で「( )」の出現位置を特定し、Midの開始位置と抽出文字数を割り出します。
開始位置 :"("の出現位置 + 1
抽出文字数:")"の出現位置 から"("の出現位置を引いた数 - 1
Sub Extraction() Dim name As String name = "多治比縣守(たじひのあがたもり)君" MsgBox Mid(name, InStr(name, "(") + 1, InStr(name, ")") - InStr(name, "(") - 1) name = "清少納言(せいしょうなごん)さん" MsgBox Mid(name, InStr(name, "(") + 1, InStr(name, ")") - InStr(name, "(") - 1) name = "源義仲(みなもとのよしなか)氏" MsgBox Mid(name, InStr(name, "(") + 1, InStr(name, ")") - InStr(name, "(") - 1) End Sub
【実行結果】()内の文字列がメッセージボックスに表示されます。
たじひのあがたもり せいしょうなごん みなもとのよしなか
シングルクォートを外して表示する
Replace で特定の文字列を指定した文字列に置換します。
Sub ReplaceChar() Dim name As String name = "'多治比縣守'" MsgBox Replace(name, "'", "") name = "'清少納言'" MsgBox Replace(name, "'", "") name = "'源義仲'" MsgBox Replace(name, "'", "") End Sub
【実行結果】
多治比縣守 清少納言 源義仲
最近のコメント