• ベストアンサー

htmlから取り込んだ を消したい EXCEL VBA

WIN XP HOME,EXCEL2002を使用しています。 あるWEBサイトから取り込んだデータに「やまだ たろう」とあります。この「やまだ」と「たろう」の間に、 (実際にはスペースのように見えます)というデータが入っており、最終的にEXCEL VBAでCSVファイルに変換すると「やまだ?たろう」となってしまいます。 この「?」を無くして「やまだたろう」(間にスペースは不要)としたいのですが、どのようにすればいいのでしょうか? ちなみに↓の"a"のところに半角スペースや、全角スペースなどを入れてみましたが、NGでした。 Cells.Replace What:="a", Replacement:="", どなたかよろしくお願いいたします。

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

  • ベストアンサー
  • momoturbo
  • ベストアンサー率55% (49/88)
回答No.6

webからコピーしたものを一度メモ帳などに 貼り付けて保存。そのファイルをEXCELで開くってのは どうでしょう? 余談 文字列はアスキーコードで保存されます 例 1 → &h31 や → &h82E2 (もしかしたら &hE282) ? → &h3F 半角SP → &h20 となっています。(&hは16進数) やまだ?たろう の?部分が何かわかれば、 変更できます。 そのへんはバイナリ-エディタを使用して調べてみてください。

min128mini
質問者

補足

momoturboさん、 先週は何度もお付き合いいただき、本当にありがとうございました。しばらく時間が空いてしまってすみません。 現在の状況を先にいいますCSVに変換後でしたら以下の方法で消すことができました。 Cells.Select Selection.Replace What:="~?", Replacement:="" エクセル上で「?」はワイルドカードになっているので「?」だけを消したい場合はその前に「~」が必要とのことでした。 でも、私が本当にやりたいのはCSVに変換する前にスペース(らしきもの)を消したいんです。 このスペース(らしきもの)をエクセルの関数で=code("")というのを使うと以下のことが分かりました。 =code("半角スペース")の値は「32」です。→&H20ですね? =code("?")の値は「63」です。→&H3Fですね? =code("私が消したいスペース")の値は「160」となります。→これはなにになるのでしょう? これは分かればmomoturboさんから教えてもらった以下の方法できっと消せますよね。 Cells(1, 1).Replace Chr(&xxx), ""   お分かりになれば教えてくれだい。いろいろ調べたのですが、自力では分かりませんでした。よろしくお願いします。

その他の回答 (5)

  • momoturbo
  • ベストアンサー率55% (49/88)
回答No.5

Cells(1, 1).Replace Chr(&H3F) , "" これでどうでしょう?

min128mini
質問者

補足

何度も本当にありがとうございます。とっても感謝しています。 今回いただいたコードで試させていただいたところ、「やまだ たろう」全てが消えてしまいました(ToT)/~~~・・・・ エクセルでは認識できない文字なのでしょうかね。

  • momoturbo
  • ベストアンサー率55% (49/88)
回答No.4

Cells(1, 1).Replace Chr(&H20) & Chr(&H3F) & Chr(&H20), "" '&nbsp' は &h20 &h3f &h20 で表示されているみたい 多分これでいけると・・・(^ ^;

min128mini
質問者

補足

なんどもお付き合いいただき、本当にありがとうございます。 早速、教えていただいたコードを先ほどと同じやり方で試させていただいたのですが、やはりCSVに変換すると「?」が残ってしまいました。 今のところお手上げ状態ですが、自分なりにもう少し調べてみたいと思います。

  • momoturbo
  • ベストアンサー率55% (49/88)
回答No.3

1.EXCELのA1のセルに「やまだ たろう」を貼り付ける( は実際には見えません)。 自分の場合 やまだ・たろう というように黒点が間に表示されます 2.Cells(1, 1).Replace Chr(&HA0), ""  を実行。 EXCEL上は黒点が消えます そのセルをコピーペーストしても黒点がなし 3.テキストファイルに保存する。 どのようにして保存しているのでしょう? バイナリーエディターなどではたして'?'が' 'か どうか調べてみてはどうでしょう? 環境 WIN2k office2000

参考URL:
http://computers.yahoo.co.jp/download/vector/win/util/bin/edit/
min128mini
質問者

補足

何度もありがとうございます。 >3.テキストファイルに保存する。 >どのようにして保存しているのでしょう? 保存はエクセルのファイルメニューから「名前をつけて保存」→ファイルの種類で「CSV(カンマ区切り)」を選んで保存しました。 私の場合はあるWEBページで表示された画面をコピーしてそのままエクセルに貼り付けていますので・にはならずスペースのように表示されています。なぜ なのかというとここの質問文に該当部分をそのまま貼り付けるとやまだ たろうと表示された為です。 教えていただいたバイナリーエディターはいくつかダウンロードしてやってみましたが、あまり知識もなく、使ったこともないのでまだ良く分かっていない状況です。もう少しがんばってみます。

  • momoturbo
  • ベストアンサー率55% (49/88)
回答No.2

Cells(1, 1).Replace Chr(&HA0), "" これでやってみてください。

min128mini
質問者

補足

ご回答ありがとうござました。 うーん、やっぱりうまく行きませんでした。 試した方法は・・・・・ 1.EXCELのA1のセルに「やまだ たろう」を貼り付ける( は実際には見えません)。 2.Cells(1, 1).Replace Chr(&HA0), ""  を実行。 3.テキストファイルに保存する。 するとテキストファイルには「やまだ」と「たろう」の間に「?」マークが出てしまいます。 この「?」を消したいのですが・・・・ 試した方法に何か間違いはありますか?もしよろしければ再度アドバイスをいただけると助かります。

  • arukamun
  • ベストアンサー率35% (842/2394)
回答No.1

こんにちは   は   と同じですので、 U+00A0 です。 (参考URLをご確認ください。) Cells.Replace What:=0x00A0, Replacement:="", でいかがでしょうか?

参考URL:
http://www.w3.org/TR/REC-html40/sgml/entities.html
min128mini
質問者

補足

ご回答ありがとうございます。 教えていただいたものを試してみたのですが、うまくスペースを詰めてくれません。教えていただいた通りにやっているつもりですが、何か他に気をつけなければいけないところはあるでしょうか?

関連するQ&A