- ベストアンサー
htmlから取り込んだ を消したい EXCEL VBA
WIN XP HOME,EXCEL2002を使用しています。 あるWEBサイトから取り込んだデータに「やまだ たろう」とあります。この「やまだ」と「たろう」の間に、 (実際にはスペースのように見えます)というデータが入っており、最終的にEXCEL VBAでCSVファイルに変換すると「やまだ?たろう」となってしまいます。 この「?」を無くして「やまだたろう」(間にスペースは不要)としたいのですが、どのようにすればいいのでしょうか? ちなみに↓の"a"のところに半角スペースや、全角スペースなどを入れてみましたが、NGでした。 Cells.Replace What:="a", Replacement:="", どなたかよろしくお願いいたします。
- min128mini
- お礼率87% (148/170)
- Visual Basic
- 回答数6
- ありがとう数4
- みんなの回答 (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:="", でいかがでしょうか?
補足
ご回答ありがとうございます。 教えていただいたものを試してみたのですが、うまくスペースを詰めてくれません。教えていただいた通りにやっているつもりですが、何か他に気をつけなければいけないところはあるでしょうか?
関連する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のヘルプがありますが どちらを見ても、半角全角区別しない場合の書き方は書いてなかったため わかりませんでした。
- ベストアンサー
- Excel(エクセル)
- =code(" ") で値が160となる文字をEXCEL VBAで消したい
EXCEL2002です。 あるセルに半角スペースを入力し、マクロで Cells.Replace Chr(&H20), "" と走らせるときれいに消えてくれます。ちなみにこの半角スペースを=code(" ")で調べると値は32となります。 同じやり方で=code(" ")で調べると160の値となる文字があります。これはスペースのようですが、半角でも全角のスペースでもないようです。 この文字をVBAの上記の方法で消したい場合にCells.Replace Chr(xxxx), "" ←xxxxの部分は何といれたらよいのでしょうか?
- ベストアンサー
- Visual Basic
- 「半角スペース」と「 」の違い、を教えて
「半角スペース」と「 」の違い、を知りたいです。 ■背景 ・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:="" の処理を実行するとすべて消えます この場合「あいうえお」だけを残すには どのようにすればいいのでしょうか?
- ベストアンサー
- Visual Basic
- 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(エクセル)
- 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メソッドで?だけを全角にする方法を教えてください。
- ベストアンサー
- オフィス系ソフト
補足
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), "" お分かりになれば教えてくれだい。いろいろ調べたのですが、自力では分かりませんでした。よろしくお願いします。