← コード一覧へ戻る
基本文字・日付

指定した位置から文字列の末尾まで取り出す

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

図で見るコロンの後ろ全部を取り出す

イメージ図

区切りの位置を探し、その次から末尾まで取得します。

  1. 商品名付き文字列

    text = "商品:ノート青色"

  2. 3文字目のコロンを検索

    InStrで3を取得し、Mid$(text, 4)で文字数を省略して切り出す

  3. ノート青色を表示

    コロンより右側の全文をMsgBoxに表示

コロンがなければメッセージを表示して終了します。複数ある場合は最初のコロンより後ろを取得します。

コードの処理を説明する模式図です。実際の画面や実行結果を撮影したものではありません。

使い方・実行手順を確認する4つの手順で、コードの使い方を確認できます
  1. 1

    Windows版デスクトップExcelの練習用ブックを.xlsm形式で保存します。Alt+F11でVBEを開き、[挿入]→[標準モジュール]で作った空のモジュールに、Option Explicitから末尾まで、この例だけを貼り付けます。

  2. 2

    セルの準備は不要です。半角コロンの後の「ノート青色」を取り出します。

  3. 3

    Example7063のSub内にカーソルを置き、F5キーで実行します。

  4. 4

    「ノート青色」と表示されます。末尾までなので長さを計算する必要はありません。

使っている機能の公式ドキュメント(Microsoft Learn)