【エクセルVBA】文字列の一部を抽出(nからi文字目)

当ページのリンクには広告が含まれています。

スポンサーリンク

VBAを用いて 文字列の一部(nからi文字目)を抽出の文字列を抽出 テクニックを 解説します

クリックしてジャンプ

n文字目からi文字目を抽出

Mid関数は、指定された位置から指定された数の文字を文字列から抽出します

Dim partOfString As String
partOfString = Mid("Hello World", 7, 5)
MsgBox "抽出した文字列は '" & partOfString & "' です。"

Mid関数の構文

Mid(string, start, [length])
  • string: 操作対象の文字列を指定します。
  • start: 文字列の抽出を開始する位置を指定します(1から始まります)。
  • length(省略可能): 抽出する文字数を指定します。省略すると、開始位置から文字列の末尾までを抽出します。

セル内の文字列から一部を抽出

Sub ExtractSubstringFromCell()
    Dim cellContent As String
    Dim substring As String
    
    cellContent = Range("A1").Value ' セルA1の内容を取得
    substring = Mid(cellContent, 2, 5) ' 2文字目から5文字を抽出
    Range("B1").Value = substring ' 結果をセルB1に表示
End Sub

解説: セルA1の内容から2文字目から5文字分を抽出し、その結果をセルB1に表示します

出力結果: セルA1に「Hello, World!」と入力されている場合、セルB1に「ello,」が表示されます

指定した文字列から一部を抽出

Sub ExtractSubstringFromString()
    Dim sampleString As String
    Dim substring As String
    
    sampleString = "Hello, World!" ' サンプル文字列
    substring = Mid(sampleString, 8, 5) ' 8文字目から5文字を抽出
    MsgBox "The extracted substring is " & substring ' 結果をメッセージボックスに表示
End Sub

解説: サンプル文字列「Hello, World!」から8文字目から5文字分を抽出し、その結果をメッセージボックスに表示します

出力結果: メッセージボックスに「The extracted substring is World」と表示されます

ユーザー入力の文字列から一部を抽出

Sub ExtractSubstringFromUserInput()
    Dim userInput As String
    Dim substring As String
    
    userInput = InputBox("文字列を入力してください:") ' ユーザー入力を取得
    substring = Mid(userInput, 1, 3) ' 1文字目から3文字を抽出
    MsgBox "抽出された文字列は " & substring & " です。" ' 結果をメッセージボックスに表示
End Sub

解説: ユーザーから入力された文字列の1文字目から3文字分を抽出し、その結果をメッセージボックスに表示します

出力結果: ユーザーが「Excel VBA」と入力した場合、メッセージボックスに「抽出された文字列は Exc です。」と表示されます

複数セルの内容から一部をまとめて抽出

Sub ExtractSubstringFromMultipleCells()
    Dim i As Integer
    For i = 1 To 10
        Range("B" & i).Value = Mid(Range("A" & i).Value, 1, 3) ' 各セルの1文字目から3文字を抽出して表示
    Next i
End Sub

解説: 範囲A1:A10の各セルの内容から1文字目から3文字分を抽出し、その結果を範囲B1:B10に表示します

出力結果: 例えば、セルA1に「Hello」、A2に「Excel」、A3に「VBA」が入力されている場合、セルB1に「Hel」、B2に「Exc」、B3に「VBA」が表示されます

スポンサーリンク

クリックしてジャンプ