• ベストアンサー

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

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

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

  • ベストアンサー
  • xls88
  • ベストアンサー率56% (669/1189)
回答No.2

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

cmc32000
質問者

お礼

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

その他の回答 (1)

  • kmetu
  • ベストアンサー率41% (562/1346)
回答No.1

文字コードは160で間違いないでしょうか Cells(1, 1) = Chr$(160) & "123" & Chr(160) Cells(1, 1) = Replace(Cells(1, 1), Chr(160), "ttt") でテストしても上手く変換されますし"ttt"を""にすると削除されます。

cmc32000
質問者

お礼

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