なぜか消せない空白を削除する

VBAで発生。値は同じはずなのにIf文で同じ文字列だと判定してくれない。簡単なことなのに時間を取られてしまったので、メモ

(現象)
Trim関数を使って空白を削除しても、改行を置換しても消せない。

ローカルウィンドウで見ると文字列の前に空白があるようで、消せない空白でググると情報が出てきたので、それをもとに修正。

text = Replace(text, vbTab, "")           
text = Replace(text, vbCr, "")          
text = Replace(text, vbVerticalTab, "")
text = Replace(text, vbCrLf, "") 

上記の置換では消せない。
空白・タブ・改行等を削除するマクロ – PCいじいじ.com

Debug.Print Asc(Left(text, 1))  '>13
text = Replace(text, chr(13), "")           
text = Replace(text, vbCr, "")          
text = Replace(text, vbVerticalTab, "") 

Asc関数でコード番号を調べて、chr関数で置換しても削除できない。

text = Replace(text, Left(text, 1), "")           

直接、切り出したよくわかんない該当の文字列で置換しても消せない。
EXCEL VBA 消せないスペース?: 酔いどれLinux狂[マニア]

こちらの方法でByte配列型というのを使ってみるけど消せない。

text = Replace(text, vbCr, "")           
text = Replace(text, vbLf, "")          

もう一度、最初のやり方に戻って、考えられる改行を消していくと、消えた!

結局正体は、vbCrLfでした。最初のコードではvbCrを先に消して、vbCrLfを消したからうまくいかず、vbCr→vbLfvbCrLfで一度に消すかのどちらか。よく考えたら一番怪しいやつだった。

ちなみにHTMLの表をExcelに貼り付けるコード作成中のことでした。HTMLのソースを取得する際によくあることみたいです。


Warning: include(social-footer.html): failed to open stream: No such file or directory in /home/phase1/lifedesignedit.com/public_html/contents/themes/ldestylesheet/post-formats/format.php on line 50

Warning: include(): Failed opening 'social-footer.html' for inclusion (include_path='.:/opt/php-5.6.30/data/pear') in /home/phase1/lifedesignedit.com/public_html/contents/themes/ldestylesheet/post-formats/format.php on line 50

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です