• ベストアンサー

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

  • エクセル(2003) 「1900/1/0」を消したい

    セルA1に0を入力し 書式設定で日付→yyyy/m/dを選択しました。 しかし下記のマクロ実行しても 0が空白になりません。 Sub 日付置換() Cells.Replace what:="1900/1/0", Replacement:="", LookAt:=xlPart Cells.Replace what:="00/01/00", Replacement:="", LookAt:=xlPart Cells.Replace what:="0", Replacement:="", LookAt:=xlWhole End Sub なら最初から0なんか入力しなきゃいいじゃん。 と思われるかもしれませんが これはCSVファイルで出力したもので 最初から0の数値にも書式設定がかかってて「1900/1/0」となっています。 「1900/1/0」のデータをなくしたいのですが どんな方法がありますか? データ量が多いためマクロなどで一度に行ないたいです。 アドバイスよろしくお願いします。

  • 半角全角区別しない場合の置換

    エクセルvbaで Cells.Replace What:=str置換前, Replacement:=str置換後, LookAt:=xlPart のように置換するときに 半角でも全角でも置換できるようにするにはどうすればいいですか? Replaceにカーソルを当てF1を押すと ライブラリでVBAとExcelのヘルプがありますが どちらを見ても、半角全角区別しない場合の書き方は書いてなかったため わかりませんでした。

  • =code(" ") で値が160となる文字をEXCEL VBAで消したい

    EXCEL2002です。 あるセルに半角スペースを入力し、マクロで Cells.Replace Chr(&H20), "" と走らせるときれいに消えてくれます。ちなみにこの半角スペースを=code(" ")で調べると値は32となります。 同じやり方で=code(" ")で調べると160の値となる文字があります。これはスペースのようですが、半角でも全角のスペースでもないようです。 この文字をVBAの上記の方法で消したい場合にCells.Replace Chr(xxxx), "" ←xxxxの部分は何といれたらよいのでしょうか?

  • 「半角スペース」と「 」の違い、を教えて

    「半角スペース」と「 」の違い、を知りたいです。 ■背景 ・HTMLを秀丸エディタに貼ったりすると、「半角スペース」と「 」を別認識します ・「 」があると、色々不都合があるので、認識しやすいようにしたいです ・具体的には、「半角スペース」は目立つのでいいのですが、「 」は分かりにくいので、これを目立たせたいです ■疑問 ・「半角スペース」と「 」の違い、は何ですか? ・「改行されない空白文字」? ・「HTMLで使用可能な文字参照」てことは、HTMLではないのでしょうか? ・HTMLだとしたら、秀丸エディタとかにコピーした際、認識されるのはおかしいと思うのですが ■今の認識 ・HTMLで利用可能な「改行されない空白文字」 ・コピーされると認識されるので、HTMLではない ・だけど、「半角スペース」とも「全角スペース」とも違う ・??? ・もしかして「空白文字」と「スペース」は違う意味??

  • シート内のひらがなを全て削除したい

    こんばんは。エクセル2003です。 シート内の全てのひらがなを削除して 英数字、漢字、記号のみを残したいのですが Cells.Replace what:="あ", Replacement:="", LookAt:=xlPart Cells.Replace what:="い", Replacement:="", LookAt:=xlPart Cells.Replace what:="う", Replacement:="", LookAt:=xlPart ・ ・ ・ Cells.Replace what:="ん", Replacement:="", LookAt:=xlPart とやっていくしかないでしょうか? 何か効率のいい方法があれば教えて頂ければ助かります。 よろしくお願いします。

  • Excel2003 VBA 「*」を含む文字列の置換方法は?

    セルに「あいうえお あい*うえお」という文字列がある場合 そのセルに対して Cells.Replace What:="あい*うえお", Replacement:="" の処理を実行するとすべて消えます この場合「あいうえお」だけを残すには どのようにすればいいのでしょうか?

  • Cells.Replace What:="*234

    このような事は出来ないのでしょうか? 「2345」で終わる文字列を検索して 「2345?」にしたいのですが Sub test() Cells.Replace What:="*2345", Replacement:="*2345?", LookAt:=xlWhole End Sub を実行すると「a12345」が「*2345?」になってしまいます。 お尻のみ完全一致で「2345」以前の文字列は変更せず 「a12345」を「a12345?」にするにはどうすれば良いでしょうか? 実際の置換妻帯データは 「5」と「?」が連続している訳ではないので Sub test() Cells.Replace What:="5", Replacement:="5?", LookAt:=xlPart End Sub は考えていません。

  • Excelの置換で書式が変わる現象の回避策

    下記のようなマクロで複数の置換をしています。 Cells.Replace What:="★", Replacement:="☆", MatchCase:=True Cells.Replace What:="◆", Replacement:="◇", MatchCase:=True Cells.Replace What:="■", Replacement:="□", MatchCase:=True ・ ・ ・ セル内で改行して文字サイズや色を変えている箇所では置換後1行目の書式に変わってしまいます。 文字だけを置換をしたいのですがこれを回避する方法はあるのでしょうか教えてください。

  • CSVファイルの「20090423」を日付型の「2009/4/23」へ変換したい

    CSVファイルには書式設定が標準で「20090423」と入力されていますが これを日付型の「2009/4/23」へ変換したいのですがどうすればいいでしょうか? 現在は With Columns(1) .Replace what:="200809", Replacement:="2008/09/", LookAt:=xlPart .Replace what:="200810", Replacement:="2008/10/", LookAt:=xlPart .Replace what:="200811", Replacement:="2008/11/", LookAt:=xlPart .Replace what:="200812", Replacement:="2008/12/", LookAt:=xlPart .Replace what:="200901", Replacement:="2009/01/", LookAt:=xlPart .Replace what:="200902", Replacement:="2009/02/", LookAt:=xlPart End With とやっていますが量が多くて追いつけません。 ご教授よろしくお願いします。

  • 半角の?を全角の?にVBAで置換する方法

    A1に「ありますか?」を入力して、 Sub test1() Range("a1").Value Replace(Range("a1").Value, "?", "?") End Sub なら、ハテナが全角になるのですが Sub test2() Range("a1").Replace What:="?", Replacement:="?", LookAt:=xlPart End Sub だと、??????になってしまいます。 前後のコードの関係で、test2の方法で置換したいのですが、どうすればいいでしょう? Replace関数ではなく、Replaceメソッドで?だけを全角にする方法を教えてください。