- ベストアンサー
EXCEL vbaで化け文字を検索
EXCELシートを、csvファイルにしてテキストエディタで開くと一部文字が「?」で表示されます。 調べてみると"垂直タブ"(コード「0B」)が「?」で表示されました。その他にも色々とあります。 テキストエディタで開いて、化ける文字がシート内に存在するか否かをチェックする方法はありませんか?(VBA) たとえば、 asciiコード表 sjisのコード表のどの範囲がテキストファイルでも化けないのか?が分かれば コードチェックでわかるのでは? 教えてください。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
>テキストエディタで開くと一部文字が「?」で表示されます。 それは「そういうテキストエディタを使っているから起きている事」であって、垂直タブがあったら「垂直タブを意味するコードできちんと表示するエディタ」を使えば「文字化け」とは言わなくなります。 >たとえば、 >asciiコード表 sjisのコード表のどの範囲がテキストファイルでも化けないのか?が分かれば コードチェックでわかるのでは? そう作れば「そういうコードが含まれている事が判る」でしょうけど、問題は、そこではありません。 「問題が起きる」とすれば「CSVを読み込むアプリの方で、CSVに変な制御コードが入っていたら、不正なファイルとしてエラーになってしまう」などの不都合がある場合です。 で、現状「そういう、読み込みツールでエラーが起きる」などの問題は出ていますか? そういうエラーが「出てない」のであれば「制御コードを制御コードとしてきちんと表示してくれるテキストエディタに乗り換えれば良いだけの話」です。 「テキストエディタで『?』と表示されてしまうなら、制御コードが制御コードとして表示され『?』と表示されてしまわないテキストエディタに変えるだけ」で良いのではありませんか? 質問者さんは「どこに問題があるのか?」を根本的な部分で判っていません。
その他の回答 (1)
- chie65536(@chie65535)
- ベストアンサー率44% (8740/19838)
>(1)出来たCSVファイルをメモ帳で開く事が前提です。 それだけでは「前提が不足」しています。 メモ帳で、テキストファイルをきちんと表示する「前提」には「テキストファイルの漢字コードがUNICODEかシフトJISか?」と「メモ帳で、どのフォントを使用するか?」も必要です。 実は「メモ帳のフォントを変更する」と「変更前は漢字として表示されてた文字が、表示できない文字を意味する『?』として表示される」という事が起きます。 「使うフォントによって『?』になったり、ちゃんと漢字になったりする」という事が起きますから「NGになるかどうかは、フォントが何になっているかで決まる」と言う状態になります。 また「UNICODEのテキストファイルを、シフトJISだと思って開いてしまう」とか「シフトJISのテキストファイルを、UNICODEだと思って開いてしまう」とかが起きると、メモ帳は「?」だらけになります。 >(2)メモ帳で開いた時「?」と表示されたらNGです。 「フォントが何になっているか?」と「UNICODEかシフトJISか?」で「?が表示されるかどうかが決まる」ので、NGになるかどうかは「それらの大前提を決めないと決まらない」です。 > 内容に「?」表示があるか調査したいのです。 > 「?」だけでなく「・」もあるようです・・・・・ そういう訳で、プログラムを作るとしたら「シフトJISを使ったテキストファイルと想定し、フォントをMS明朝にした時に、?になる文字をチェックする」とか「UNICODEを使ったテキストファイルと想定し、フォントをメイリオにした時に、?になる文字をチェックする」という事になります。 そういう訳で「使っているフォントが何か?」と「そのフォントで正しく表示できる文字の範囲はどういう範囲なのか?」を調査しないと、プログラムは作れません。 そして「そのフォントで正しく表示できる文字の範囲はどういう範囲なのか?」を調べるには「メモ帖で読み込ませた時に、どの文字コードが?に化けるのかを、すべての文字コードで試してみないと判らない」です。 つまり「現状では、そういうプログラムを作るのは不可能」です。
お礼
細かい所までありがとうございます。 確かにおっしゃる事は理解できました。 メモ帳の文字コードを確認してみます。
お礼
早々にありがとうございます。説明不足の所もあり申し訳ございません。 少し補足いたします。 (1)出来たCSVファイルをメモ帳で開く事が前提です。 (2)メモ帳で開いた時「?」と表示されたらNGです。 内容に「?」表示があるか調査したいのです。 「?」だけでなく「・」もあるようです・・・・・