こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

セルに書き込まれた不正な文字を除去したい

ブラウザからコピーして、エクセルのセルに貼り付けて、これを利用しようとしていますが、文字列の尻尾にコード番号160の文字が含まれています。この文字が悪さをするので、VBAで除去しようとしていますが、うまくいきません。
Cells(1,1) = Replace(Cells(1,1),Chr(160),"") としても取れません。
Cells(1,1)=Left(cells(1,1),Len(Cells(1,1))-1) のようにすれば取れるのですが、この文字が含まれていない場合もあり、その場合は必要な文字がかけてしまいます。Trimも試しましたが、うまく取れません。
何か方法は無いでしょうか?

投稿日時 - 2009-10-06 23:20:54

QNo.5347535

困ってます

質問者が選んだベストアンサー

Cells(1,1) = Replace(Cells(1,1), ChrW(160), "")
あるいは、問題の文字を検索する文字にコピペして
Cells(1,1) = Replace(Cells(1,1), "(ここにコピペ)", "")
とすればどうでしょうか。

投稿日時 - 2009-10-07 06:33:51

お礼

ありがとうございます。
検索や置換の場合に、文字を貼り付けて実行すると、正しく認識します。しかし、VBAの式の中に貼り付けると?になってしまいます。
結局、式に貼り付けずに、セルを座標で引用することでうまく行きました。
VBAのエディターの中では、ユニコード文字が表記できないようです。

投稿日時 - 2009-10-07 11:26:27

ANo.2

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

文字コードは160で間違いないでしょうか

Cells(1, 1) = Chr$(160) & "123" & Chr(160)
Cells(1, 1) = Replace(Cells(1, 1), Chr(160), "ttt")

でテストしても上手く変換されますし"ttt"を""にすると削除されます。

投稿日時 - 2009-10-06 23:49:17

お礼

ありがとうございます。この文字(半角のスペース)をセルに貼り付け、CODE関数で見ると160になります。どうもユニコードの文字のようで、メモ帳に貼り付けて保存すると、そのような警告が出ます。

投稿日時 - 2009-10-07 11:20:18

あなたにオススメの質問