指定した位置から文字列の末尾まで取り出す
Midの文字数を省略して、指定した位置から右側すべてを取得します。
実行前に確認
- 区切り文字の存在を先に確認します。この例では見つからない場合に終了します。
- コロンが複数ある場合は最初のコロンより後ろ全部を返します。最後のコロンから取り出す場合はInStrRevを使います。
- コロンが末尾にある場合、結果は空文字列になります。
- Excel実機での動作は未確認です。コピーした練習用ブックで試してください。
1サンプルコード
Option Explicit
Sub Example7063()
Dim text As String
Dim separatorPosition As Long
Dim result As String
text = "商品:ノート青色"
separatorPosition = InStr(1, text, ":", vbBinaryCompare)
If separatorPosition = 0 Then
MsgBox "区切りの : が見つかりません。", vbExclamation
Exit Sub
End If
result = Mid$(text, separatorPosition + 1)
MsgBox result, vbInformation, "区切りより右側"
End Sub図で見るコロンの後ろ全部を取り出す
イメージ図区切りの位置を探し、その次から末尾まで取得します。
商品名付き文字列
text = "商品:ノート青色"
3文字目のコロンを検索
InStrで3を取得し、Mid$(text, 4)で文字数を省略して切り出す
ノート青色を表示
コロンより右側の全文をMsgBoxに表示
コロンがなければメッセージを表示して終了します。複数ある場合は最初のコロンより後ろを取得します。
コードの処理を説明する模式図です。実際の画面や実行結果を撮影したものではありません。
使い方・実行手順を確認する4つの手順で、コードの使い方を確認できます
- 1
Windows版デスクトップExcelの練習用ブックを.xlsm形式で保存します。Alt+F11でVBEを開き、[挿入]→[標準モジュール]で作った空のモジュールに、Option Explicitから末尾まで、この例だけを貼り付けます。
- 2
セルの準備は不要です。半角コロンの後の「ノート青色」を取り出します。
- 3
Example7063のSub内にカーソルを置き、F5キーで実行します。
- 4
「ノート青色」と表示されます。末尾までなので長さを計算する必要はありません。