• ベストアンサー

EXCEL vbaで化け文字を検索

EXCELシートを、csvファイルにしてテキストエディタで開くと一部文字が「?」で表示されます。 調べてみると"垂直タブ"(コード「0B」)が「?」で表示されました。その他にも色々とあります。 テキストエディタで開いて、化ける文字がシート内に存在するか否かをチェックする方法はありませんか?(VBA) たとえば、 asciiコード表 sjisのコード表のどの範囲がテキストファイルでも化けないのか?が分かれば コードチェックでわかるのでは? 教えてください。

  • rei230
  • お礼率92% (153/166)

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

  • ベストアンサー
  • chie65535
  • ベストアンサー率43% (8525/19381)
回答No.1

>テキストエディタで開くと一部文字が「?」で表示されます。 それは「そういうテキストエディタを使っているから起きている事」であって、垂直タブがあったら「垂直タブを意味するコードできちんと表示するエディタ」を使えば「文字化け」とは言わなくなります。 >たとえば、 >asciiコード表 sjisのコード表のどの範囲がテキストファイルでも化けないのか?が分かれば コードチェックでわかるのでは? そう作れば「そういうコードが含まれている事が判る」でしょうけど、問題は、そこではありません。 「問題が起きる」とすれば「CSVを読み込むアプリの方で、CSVに変な制御コードが入っていたら、不正なファイルとしてエラーになってしまう」などの不都合がある場合です。 で、現状「そういう、読み込みツールでエラーが起きる」などの問題は出ていますか? そういうエラーが「出てない」のであれば「制御コードを制御コードとしてきちんと表示してくれるテキストエディタに乗り換えれば良いだけの話」です。 「テキストエディタで『?』と表示されてしまうなら、制御コードが制御コードとして表示され『?』と表示されてしまわないテキストエディタに変えるだけ」で良いのではありませんか? 質問者さんは「どこに問題があるのか?」を根本的な部分で判っていません。

rei230
質問者

お礼

早々にありがとうございます。説明不足の所もあり申し訳ございません。 少し補足いたします。 (1)出来たCSVファイルをメモ帳で開く事が前提です。 (2)メモ帳で開いた時「?」と表示されたらNGです。 内容に「?」表示があるか調査したいのです。 「?」だけでなく「・」もあるようです・・・・・

その他の回答 (1)

  • chie65535
  • ベストアンサー率43% (8525/19381)
回答No.2

>(1)出来たCSVファイルをメモ帳で開く事が前提です。 それだけでは「前提が不足」しています。 メモ帳で、テキストファイルをきちんと表示する「前提」には「テキストファイルの漢字コードがUNICODEかシフトJISか?」と「メモ帳で、どのフォントを使用するか?」も必要です。 実は「メモ帳のフォントを変更する」と「変更前は漢字として表示されてた文字が、表示できない文字を意味する『?』として表示される」という事が起きます。 「使うフォントによって『?』になったり、ちゃんと漢字になったりする」という事が起きますから「NGになるかどうかは、フォントが何になっているかで決まる」と言う状態になります。 また「UNICODEのテキストファイルを、シフトJISだと思って開いてしまう」とか「シフトJISのテキストファイルを、UNICODEだと思って開いてしまう」とかが起きると、メモ帳は「?」だらけになります。 >(2)メモ帳で開いた時「?」と表示されたらNGです。 「フォントが何になっているか?」と「UNICODEかシフトJISか?」で「?が表示されるかどうかが決まる」ので、NGになるかどうかは「それらの大前提を決めないと決まらない」です。 > 内容に「?」表示があるか調査したいのです。 > 「?」だけでなく「・」もあるようです・・・・・ そういう訳で、プログラムを作るとしたら「シフトJISを使ったテキストファイルと想定し、フォントをMS明朝にした時に、?になる文字をチェックする」とか「UNICODEを使ったテキストファイルと想定し、フォントをメイリオにした時に、?になる文字をチェックする」という事になります。 そういう訳で「使っているフォントが何か?」と「そのフォントで正しく表示できる文字の範囲はどういう範囲なのか?」を調査しないと、プログラムは作れません。 そして「そのフォントで正しく表示できる文字の範囲はどういう範囲なのか?」を調べるには「メモ帖で読み込ませた時に、どの文字コードが?に化けるのかを、すべての文字コードで試してみないと判らない」です。 つまり「現状では、そういうプログラムを作るのは不可能」です。

rei230
質問者

お礼

細かい所までありがとうございます。  確かにおっしゃる事は理解できました。 メモ帳の文字コードを確認してみます。

関連するQ&A

  • ExcelからCSVファイルへの変換と文字化け

    エクセルからCSVファイルへの変換したときの文字化けに悩まされています。 たとえば、 千代田区大手町19-1 という住所がはいっているセルがあり、CSVに変換すると、 千代田区大手町19?1 となります。 エクセルで開いても、テキストエディタで開いても「-」が「?」に文字化けします。 エンコードの問題なのでしょうが、どうすれば文字化けが解消されるのか、わかりません。 エクセルはデフォルトではSJISで保存されるようなので、 UTF8で保存すれば、文字化けはなくなるのかもしれません。 ただ、 http://web-laboratories.com/excel-csv こちらのサイトにあるように、 [WEBオプション]をつかってUnicode[UTF-8]で保存しても、 テキストエディタで開きなおすと、SJISのままになっているようです。 文字化けをさせないCSVファイルへの保存のやり方を教えてください。

  • テキストエディターの文字化け

    素人の者です。 これまで、PHPのプログラムの書き込みをSJISで行ってきましたが、どうもネット上を調べているうちにSJISはあまり使わないほうが良いようなことが書いてあったので、UTF-8で書くことにしようと思いました。そして、UTF-8で書いていてWEB上は特に問題なく文字化けもせず表示されるのですが、テキストエディターで再度ファイルを開くと、テキストエディター内で文字化けしていることがあります。メモ帳で開くときはファイルの文字コートをUTF-8に指定すれば文字化けしません。サクラエディターで開けば、何もしなくても文字化けしません。php_editor_stdで開けば、文字化けします。ez-HTMLで開けば、文字化けします。???とこんな具合です。テキストエディターを開くときにエンコードを指定して開けば、文字化けはしないであろうと考えて、設定の部分を色々と探していじってみても、文字化けの現象は変わりません。SJISですと、ダメ文字とかあるのでやはり切り替えていったほうが良いと思い試している最中です。テキストエディターで文字化けした場合、どのようにすれば解消するのかお分かりになる方がおりました教えていただけないでしょうか。よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • PHPで文字化けします

    PHPでリンク集を登録、表示するプログラムを考えています。 登録、削除などは出来るのですが、表示部分が文字化けします。 登録内容をcsvに保存して、PHPから読み込んで表示する仕組みなのですが、csvから読み込む部分以外は正常に表示されますが、csvから読み込んだ部分が文字化けします。 サーバーは共用なので、管理者に問い合わせた所、サーバの通常文字コードはUTF-8との事、.htaccess ファイルで EUCへの変換方法を教えてもらったので、試しましたが、csv内に登録した時点で、文字化けした状態で記録されているようで、PHPファイルをsjisにして試しても、EUCにして試しても結果が同じです。 フォームからcsvに登録する時の文字コードを設定したりはできないのでしょうか。 また、公開されているスクリプトで相互リンク登録が出来るようなプログラムをご存知であれば、お教えください。

    • 締切済み
    • PHP
  • 文字化けについての質問

    こんにちは、kmakotoです。 現在日本語の文字化けに悩まされています。 いろいろなサイトで情報を見たのですが、 該当するようなものがありませんでした。 皆さんの力をお借りしたく投稿しました。 環境は、 サーバ:Windows2000(SJIS、DB:oracle 8.1.6(SJIS) で weblogic7.0 を使って、Servlet,JSP,EJB の開発をしています。 文字化けの内容はDBで検索した結果を response.getWriterで printをつかってCSV形式にして、それをダウンロードしようとしているのですが、 エディタもしくはExcelで開いたとき日本語が化けて表示されてしまいます。 SJIS、MS932が…とかの説明がweb上にあるので、試行錯誤してみました。 しかし日本語は化けて表示されてしまいます。 試したことは 1.Javacのコンパイルオプションに -encodingにSJISまたはMS932を指定してコンパイル 2.1:response.setContentType("application/octet-stream"); 2:response.setHeader("Content-Disposition", "attachment;filename=\"" + new String(downLoadFileName.getBytes("MS932"), "8859_1") + "\""); 文字コードの指定の部分にMS932やSJISを設定 上記のことを試したのですがCSVファイルが文字化けしてしまいます。 2.1:の部分をresponse.setContentType("text/html");するとブラウザ上に表示されるのですが このときだけはちゃんと日本語で表示してくれます。

    • ベストアンサー
    • Java
  • 文字検索

    22歳。新人PGです。 さっそく質問させていただきます。 入力された文字を元に、CSVファイルの中の文章に含まれるものを 検索し、表示するという機能を作成してるんですが、 半角カタカナを入力された場合、意としない文字まで検索に ひっかかってしまします。 ≫CSVファイルの中身 123,あああいいいいうう 124,あああああおおおおお 125,ぽぽぽいいいいえええ ・ ・ ・ ex. 「カレー」と半角カタカナで入力すると、 「カレー」という文字が含まれる文章は検索でひっかかりますが、 「学生レーサー」というものまでもひっかかってしまいます。 文字コードが関係しているのでしょうか? 何か良い解決方法があればお願い致します。 ちなみに、CSVファイル及びPHPソースファイルは全てSJISで、 preg_match("/入力値/",$sentence)で検索しています。

    • ベストアンサー
    • PHP
  • NUL文字と垂直タブの置換について

    CSVファイルをサクラエディタで開いて下記のサイトを参考にしてNUL文字と垂直タブを検索したところヒットしました。 https://harvestasya.com/blog/151 VBScriptでファイルの取り込みをするプログラムを作成しています。 このCSV内に含まれるNUL文字と垂直タブを排除しようと正規表現を用いて作成していますが全然、うまくいきません。 申し訳ありませんが些細な事でも何でも構いませんのでアドバイスいただけませんでしょうか。 何卒、宜しくお願いします。

  • 文字コード表示

    テキストファイル(htmlやphpなど)の文字コードを一覧で 表示できるようなフリーソフトはありませんでしょうか? 希望のものとしてはフォルダを指定するとフォルダにある ファイルを自動で認識し(できれば仮想フォルダ内のファイルも) ファイルの文字コード一覧が表示され確認できるものを探しています。 対応文字コードはsjis,euc-jp,utf-8n(bomなし)です。 少数のファイルだとテキストエディタで一つづつ確認すれば 済むのですが多数のファイルがある場合かなりの労力になるので 一覧表示できるものがあれば・・・と思いました。 文字コードを変換するものは多数見つかったのですが文字コードを 一覧で表示させるものは見つけられませんでした。 ご存知の方がおりましたら宜しくお願い致します。

  • MySQL5.1の文字化け

    多くの方が同様の質問をされていたのですが、一致する問題が見つけれなかったので、ご存じの方がおられたら教えて下さいm(_ _)m (環境)  PHP 5.2.8 ZendFramework 1.5.1 から Pdo Mysqlを使用  文字コード:SJIS  Mysql 5.1  文字コード:EUC-JP (質問内容) 携帯の絵文字データをSJISのバイナリでスクリプト中に埋め込むため、スクリプトの文字コードをSJISに統一したところ、文字化けが発生しました。 SET NAMES SJIS のSQLを発行することで表示は正しくできるようなったのですが、新たにレコードを追加しようとすると文字化けが発生します。 例)情報 → 情表 insertを行う前の文字コードをSJIS,SJIS-win,EUCと変えてみましたが、SJISもしくはSJIS-winの場合は上記の例のとおりとなり、EUCにすると完全な文字化けとなりました... おそらく登録時にMYSQLがSJIS→UTF8→EUCに変換される時に正しく変換されていないものと思われるのですが、どなたか対処方法をご存じないでしょうか? よろしくお願いします。

    • ベストアンサー
    • PHP
  • phpMyAdminでCSVファイルをインポートするが文字化け

    MYSQL初心者です。 教えてください。御願いします。 phpMyAdminにて、漢字コードが「Sjis」のCSVファイルをLinuxサーバのMySQLにインポートするのですが、文字化けを起こしてしまい、旨く変換出来ません。多分、「utf8」に変換されているようです。勿論変換時の漢字コードは「sjis」にしております。どなたか助けて下さい。宜しく御願いします。

  • 文字化け(違う文字コードで保存すると不可逆?)

    テキスト・エディタでSJISのテキスト・ファイルをEUCとして開き(この時点で文字化けしてたのですが、それに気付かず)、誤ってそのまま保存してしまいました。 しかも大量のファイルを・・・。 日本語が文字化けしてしまったのですが、これを修復することはできるでしょうか? 一応、EUCのファイルをもう一度SJISで保存し直してみたり、エンコードを読み変えるソフトなどを試してみたのですが、結果はダメでした。 具体的には、以下の手順でやってしまいました。 1.秀丸でSJISファイル(PHPスクリプト)を開く 2.拡張子関連付け(PHPファイル=EUC)によって、開いた時はEUCモード(この時点で文字化け) 3.そのまま(EUCファイルとして)上書き保存 どなたか、修復の方法が分かる方、教えてください・・・・