【VBA】文字列の編集

Excel,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

【実行結果】

多治比縣守
清少納言
源義仲

Excel,VBA

Posted by junichi