Excel VBAで文字列を抽出する方法

Excel VBAで文字列を抽出する方法

Posted at August 26,2014 12:33 AM
Tag:[Excel, VBA]

Excel VBAで文字列を抽出する方法を紹介します。

1.はじめに

Excel VBAで文字列を抽出するには、下記の方法があります(正規表現による抽出を除く)。

  • 文字列の左端から抽出する
  • 文字列の右端から抽出する
  • 文字列の任意の位置から抽出する

以下、それぞれの方法について紹介します。

2.文字列の左端から抽出する

文字列の左端から抽出するにはLeft()関数を用います。

Left()関数の第1パラメータには対象の文字列、第2パラメータには抽出する文字数を指定します。

サンプル

Sub test()
    Dim foo As String
    Dim bar As String
    foo = "abcde"
    bar = Left(foo, 3)
    MsgBox bar
End Sub

5行目のLeft()関数で、変数fooの左端から3文字を抽出しています。

    bar = Left(foo, 3)

実行結果は次のように「abc」になります。

実行結果

3.文字列の右端から抽出する

文字列の右端から抽出するにはRight()関数を用います。

Right()関数の第1パラメータには対象の文字列、第2パラメータには抽出する文字数を指定します。

サンプル

Sub test()
    Dim foo As String
    Dim bar As String
    foo = "abcde"
    bar = Right(foo, 3)
    MsgBox bar
End Sub

5行目のRight()関数で、変数fooの右端から3文字を抽出しています。

    bar = Right(foo, 3)

実行結果は次のように「cde」になります。

実行結果

4.文字列の任意の位置から抽出する

文字列の任意の位置から抽出するにはMid()関数を用います。

Mid()関数の第1パラメータには対象の文字列、第2パラメータには開始位置、第3パラメータには抽出する文字数を指定します。

第2パラメータの開始位置は「1」から数えます。また第3パラメータが文字列の文字数を超えてしまった場合、文字列の最後まで抽出します。

サンプル1

Sub test()
    Dim foo As String
    Dim bar As String
    foo = "abcde"
    bar = Mid(foo, 2, 2)
    MsgBox bar
End Sub

5行目のMid()関数で、変数fooの2文字目から2文字を抽出しています。

    bar = Mid(foo, 2, 2)

実行結果は次のように「bc」になります。

実行結果

第3パラメータを省略すると開始位置から最後まで抽出します。

サンプル2(第3パラメータを省略)

Sub test()
    Dim foo As String
    Dim bar As String
    foo = "abcde"
    bar = Mid(foo, 2)
    MsgBox bar
End Sub

5行目のMid()関数で、変数fooの2文字目から最後までの文字を抽出しています。

    bar = Mid(foo, 2)

実行結果は次のように「bcde」になります。

実行結果

関連記事
トラックバックURL


コメントする
greeting

*必須

*必須(非表示)


ご質問のコメントの回答については、内容あるいは多忙の場合、1週間以上かかる場合があります。また、すべてのご質問にはお答えできない可能性があります。予めご了承ください。

太字イタリックアンダーラインハイパーリンク引用
[サインインしない場合はここにCAPTCHAを表示します]

コメント投稿後にScript Errorや500エラーが表示された場合は、すぐに再送信せず、ブラウザの「戻る」ボタンで一旦エントリーのページに戻り(プレビュー画面で投稿した場合は、投稿内容をマウスコピーしてからエントリーのページに戻り)、ブラウザをリロードして投稿コメントが反映されていることを確認してください。

コメント欄に(X)HTMLタグやMTタグを記述される場合、「<」は「&lt;」、「>」は「&gt;」と入力してください。例えば「<$MTBlogURL$>」は「&lt;$MTBlogURL$&gt;」となります(全て半角文字)