VBATips

セル内の改行コードを変換する【Replace関数】【ExcelVBA】

文字列の改行コードには CR LF CRLF と3パターンあります。
改行コードを判定してコードを組むのもよいですが、
指定の改行コードに事前に変換してしまうのも一つの手です。

セル内の改行コードを変換する

'■LF→CRに置換
Public Function call_LfToCr(str As String) As String
    call_LfToCr = Replace(str, vbLf, vbCr)
End Function
'■LF→CRLFに置換
Public Function call_LfToCrlf(str As String) As String
    call_LfToCrlf = Replace(str, vbLf, vbCr)
End Function
'■CR→LFに置換
Public Function call_CrToLf(str As String) As String
    call_CrToLf = Replace(str, vbCr, vbLf)
End Function
'■CR→CRLFに置換
Public Function call_CrToCrlf(str As String) As String
    call_CrToCrlf = Replace(str, vbCr, vbCrLf)
End Function
'■CRLF→CRに置換
Public Function call_CrlfToCr(str As String) As String
    call_CrlfToCr = Replace(str, vbCrLf, vbCr)
End Function
'■CRLF→LFに置換
Public Function call_CrlfToLf(str As String) As String
    call_CrlfToLf = Replace(str, vbCrLf, vbLf)
End Function

注意点

  • セル内の改行 Alt + Enter  ではvbLfの改行です。
  • 他システムからエクスポートされたCSVファイルなどはvbCrLfの形も多いです。
  • 全てのシートに対して改行コードを変換する場合は下記。
'■ブック全体を部分一致で置換
Public Sub Call_ReplaceAll_xlPart()
    Dim ws As Worksheet
    
    For Each ws In ActiveWorkbook.Worksheets
        ws.UsedRange.Replace What:=vbLf, Replacement:=vbCrLf, LookAt:=xlPart
    Next ws
End Sub

関連記事

コメント

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