文字列の改行コードには 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
コメント