[VBA] 文字列にどのような改行コードが含まれているかどうかをチェックする

はじめに

改行コードにはCR、LF、CRLFの3種類があり、文字コードはCRが0x0D(13)、LFは0x0A(10)となります。それぞれ1バイト文字です。
CRLFの場合はCRとLFをつなげた2バイトとなります。

改行コードの種類

VBAでは改行コード用の定数が定義されており、以下の4つとなります。

  • vbCr
  • vbLf
  • vbCrLf
  • vbNewLine

vbNewLineは実行OSに依存します。

OS改行コード
WindowsvbCrLf
MacvbCr

改行コード判定サンプル

以下は、改行コードが含まれているかどうか判定する処理のサンプルとなります。

改行コードが含まれている場合は「True」を返し、含まれていない場合は「False」を返します。

Public Function CheckCrLf()

    Dim valCr As String
    Dim valLf As String
    Dim valCrLf As String

    ' 改行コードを含む文字列を用意する
    valCr = "hogehoge" & vbCr
    valLf = "hogehoge" & vbLf
    valCrLf = "hogehoge" & vbCrLf

    Select Case True
        Case InStr(valCr, vbCr) > 0
            Debug.Print "CR is included"
            CheckCrLf = True
        Case InStr(valLf, vbLf) > 0
            Debug.Print "LF is included"
            CheckCrLf = True
        Case InStr(valCrLf, vbCrLf) > 0
            Debug.Print "CRLF is included"
            CheckCrLf = True
        Case Else
            Debug.Print "CR or LF or CRLF is not included"
            CheckCrLf = False
    End Select

End Function

最後に

改行コードはプログラマーが苦しめられる一つなので、押さえておいた方がよい知識です。

是非ご参考までに。

タイトルとURLをコピーしました