VBATips

文字列に改行コードが含まれるか判定する【InStr関数】【ExcelVBA】

文字列に改行コードが含まれているか、判定をしたい場合があります。
Instr関数で改行が含まれているかチェックすれば可能です。

但し、注意をしないといけないのが、改行には CR LF CRLF と3パターンあります。

文字列に改行コードが含まれるか判定する


Public Sub sample()

    Dim sWord As String: sWord = ActiveCell
    
    '■CRが含まれるかチェック
    If InStr(sWord, vbCr) > 0 Then
        Debug.Print "CR改行あり"
    End If
    
    '■LFが含まれるかチェック
    If InStr(sWord, vbLf) > 0 Then
        Debug.Print "LF改行あり"
    End If
    
    '■CRLFが含まれるかチェック
    If InStr(sWord, vbCrLf) > 0 Then
        Debug.Print "CRLF改行あり"
    End If
End Sub

注意点

  • セル内の改行 Alt + Enter  ではvbLfの改行です。
  • 他システムからエクスポートされたCSVファイルなどはvbCrLfの形も多いです。
  • という事は、vbLfだけの判定では改行チェックとしては、弱いかもしれません。
  • vbCrLf は vbCr と vbLf の集合体です。以下のような形のチェックも可能です。
        If InStr(sWord, vbCr) > 0 And InStr(sWord, vbLf) > 0 Then
            Debug.Print "CR改行 and LF改行あり"
        End If
    
  • 逆に改行コードを判定するのではなく、指定の改行コードに変換してしまうのも手です。

関連記事

コメント

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