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



コメント