改行を含む文字を簡単に処理する便利なテクニック | VBScript / VBA FAQ

[FAQ CENTER トップ]
[VBScript FAQ トップへ]

VBScript / VBA FAQ


スポンサード リンク

【質問】 改行を含む文字を簡単に処理する便利なテクニック

スポンサード リンク

【答え】
VBA において改行(vbCR、vbLF、vbCRLFなどを含む)を含む文字を処理する場合に正常に処理が行われない場合があります。
また改行はExcelやVisual Studio の Watch ウィンドウでは空白などで表示されるため、デバッグが困難な場合もあります。
そんな場合は一度他の文字に変換してから再度ある改行に統一して処理するとよいでしょう。

以下の例では、vbCr、vbLf、vbLfが混在している文字列 temp_str に関して、一度 @ に変換してから処理を行い、再度戻す処理を行うサンプルとなります。
@@ を @に変換しているのは vbCrLfの場合を想定しています。

temp_str = Replace(temp_str, vbCr, "@")
temp_str = Replace(temp_str, vbLf, "@")
temp_str = Replace(temp_str, "@@", "@")

If Left(temp_str, 1) = "@" Then
temp_str = Right(temp_str, Len(temp_str) - 1)
End If

<処理実行>

rem 戻す
temp_str = Replace(temp_str, vbCr, "@", vbLf)

参考:
vbCrLf、vbLf、vbCr、vbNewLineの違いに関して
Excel セルの中の改行を判定




スポンサード リンク

[VBScript FAQ トップへ]
[FAQ CENTER トップ]





(ご注意) 本サイト内の内容を使用して発生したいかなる時間的損害、金銭的損害あるいはいかなる損害に対して、いかなる人物も一切の責任を負いません。あくまでも個人の判断で使用してください。
本サイト内掲載されている情報は、著作権法により保護されています。いかなる場合でも権利者の許可なくコピー、配布することはできません。
このページはリンクフリーです。(このページへの直接リンクも可能です。)
雑誌等での紹介は特に連絡は不要です。
Copyright(c) tooljp.com 2007-2014