【エクセル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」が表示されます