- ベストアンサー
htmlから取り込んだ を消したい EXCEL VBA
WIN XP HOME,EXCEL2002を使用しています。 あるWEBサイトから取り込んだデータに「やまだ たろう」とあります。この「やまだ」と「たろう」の間に、 (実際にはスペースのように見えます)というデータが入っており、最終的にEXCEL VBAでCSVファイルに変換すると「やまだ?たろう」となってしまいます。 この「?」を無くして「やまだたろう」(間にスペースは不要)としたいのですが、どのようにすればいいのでしょうか? ちなみに↓の"a"のところに半角スペースや、全角スペースなどを入れてみましたが、NGでした。 Cells.Replace What:="a", Replacement:="", どなたかよろしくお願いいたします。
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
webからコピーしたものを一度メモ帳などに 貼り付けて保存。そのファイルをEXCELで開くってのは どうでしょう? 余談 文字列はアスキーコードで保存されます 例 1 → &h31 や → &h82E2 (もしかしたら &hE282) ? → &h3F 半角SP → &h20 となっています。(&hは16進数) やまだ?たろう の?部分が何かわかれば、 変更できます。 そのへんはバイナリ-エディタを使用して調べてみてください。
その他の回答 (5)
- momoturbo
- ベストアンサー率55% (49/88)
Cells(1, 1).Replace Chr(&H3F) , "" これでどうでしょう?
補足
何度も本当にありがとうございます。とっても感謝しています。 今回いただいたコードで試させていただいたところ、「やまだ たろう」全てが消えてしまいました(ToT)/~~~・・・・ エクセルでは認識できない文字なのでしょうかね。
- momoturbo
- ベストアンサー率55% (49/88)
Cells(1, 1).Replace Chr(&H20) & Chr(&H3F) & Chr(&H20), "" ' ' は &h20 &h3f &h20 で表示されているみたい 多分これでいけると・・・(^ ^;
補足
なんどもお付き合いいただき、本当にありがとうございます。 早速、教えていただいたコードを先ほどと同じやり方で試させていただいたのですが、やはりCSVに変換すると「?」が残ってしまいました。 今のところお手上げ状態ですが、自分なりにもう少し調べてみたいと思います。
- momoturbo
- ベストアンサー率55% (49/88)
1.EXCELのA1のセルに「やまだ たろう」を貼り付ける( は実際には見えません)。 自分の場合 やまだ・たろう というように黒点が間に表示されます 2.Cells(1, 1).Replace Chr(&HA0), "" を実行。 EXCEL上は黒点が消えます そのセルをコピーペーストしても黒点がなし 3.テキストファイルに保存する。 どのようにして保存しているのでしょう? バイナリーエディターなどではたして'?'が' 'か どうか調べてみてはどうでしょう? 環境 WIN2k office2000
補足
何度もありがとうございます。 >3.テキストファイルに保存する。 >どのようにして保存しているのでしょう? 保存はエクセルのファイルメニューから「名前をつけて保存」→ファイルの種類で「CSV(カンマ区切り)」を選んで保存しました。 私の場合はあるWEBページで表示された画面をコピーしてそのままエクセルに貼り付けていますので・にはならずスペースのように表示されています。なぜ なのかというとここの質問文に該当部分をそのまま貼り付けるとやまだ たろうと表示された為です。 教えていただいたバイナリーエディターはいくつかダウンロードしてやってみましたが、あまり知識もなく、使ったこともないのでまだ良く分かっていない状況です。もう少しがんばってみます。
- momoturbo
- ベストアンサー率55% (49/88)
Cells(1, 1).Replace Chr(&HA0), "" これでやってみてください。
補足
ご回答ありがとうござました。 うーん、やっぱりうまく行きませんでした。 試した方法は・・・・・ 1.EXCELのA1のセルに「やまだ たろう」を貼り付ける( は実際には見えません)。 2.Cells(1, 1).Replace Chr(&HA0), "" を実行。 3.テキストファイルに保存する。 するとテキストファイルには「やまだ」と「たろう」の間に「?」マークが出てしまいます。 この「?」を消したいのですが・・・・ 試した方法に何か間違いはありますか?もしよろしければ再度アドバイスをいただけると助かります。
- arukamun
- ベストアンサー率35% (842/2394)
こんにちは は と同じですので、 U+00A0 です。 (参考URLをご確認ください。) Cells.Replace What:=0x00A0, Replacement:="", でいかがでしょうか?
補足
ご回答ありがとうございます。 教えていただいたものを試してみたのですが、うまくスペースを詰めてくれません。教えていただいた通りにやっているつもりですが、何か他に気をつけなければいけないところはあるでしょうか?
補足
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), "" お分かりになれば教えてくれだい。いろいろ調べたのですが、自力では分かりませんでした。よろしくお願いします。