
No.2ベストアンサー
- 回答日時:
私が、どの程度、今回は口を挟んで良いのか、わからないのですが、Shift-Jis とUTF-8を判別するプログラムは、一応の完成はしています。
仕組みは、バイナリーで、文字10個程度コードを読む中で、バイナリーの文字区切り信号(名前を知らない)のパターンを読み取り、UTF-8を判別するということです。ところで、補足で出ていたコードは試してはいないのですが、
Call streamWrite.SaveToFile(a_sTo, adSaveCreateOverWrite)
変換で、上書きして、UTF-8 をShift-JISi にしてしまうのですか?
もともと、Textファイルを、エクセルにインポートすることではなかったではないでしょうか?
それと、コードの中で、
'LFをCRLF処理書込 Replace ...
LF は、Linux/Unix などの改行ですが、それ自体は、ADODB.Stream の中にサポートコマンドがあったはずです。
それから、No.1で、書いた
》UTF-8だけなら、インポートする時に、decoder のプログラムを挟んであげるだけでよいです。
記録をみると、VBAで、変換フィルターは完成していませんでした。
UTF-8 to Shift-JIs 変換インポート自体は出来ています。
あまり手を出し、口出ししすぎると、私のよけいなおせっかいになりかねませんが……。
土日色々と検索してみましたが、出てくるのはVBばかりでした
結局何故UTF8とshiftJISが混ざってるのかもわからずじまいで気持ち悪い感じでした・・・
確か、バイナリエディタか何かで2バイトずらすと読めたりする事も昔あった気がしますが、それを判別するのを自作は今のレベルだと難しい通り越して無理です
幸い1行平文とか見にくいデータでですが、変換は出来たので作業開始しようと思います
No.1
- 回答日時:
こんばんは。
この話は、すでに触れていたような気がしますが、2つ確認ですが、
ひとつは、Shift-JIS と混在していますか?
もうひとつは、UTF-8ファイルは、BOM付きでしょうか。
それによって、大幅に話が違ってくると思います。
UTF-8だけなら、インポートする時に、decorder のプログラムを挟んであげるだけでよいです。
ただ、BOM付き(要するに信号)の場合は、その信号の分だけ読み込まないようにしなければなりません。
いつもありがとうございます!
ちょっとそこまで見てなかったですが、500ファイル位がshift-JISで80ファイル程がUTF-8です
BOMはついてなかったと思いますが確認今出来ません
変換のマクロを見つけたので明日試そうかと思った次第ですが、shiftJISも一緒くたにするとあかん言う事ですね・・・危ないとこでした、ありがとうございます
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excelのファイルがいつの間にか...
-
CAD ZSD→DXF変換
-
いきなりPDFで文書の切り取り
-
写真を撮ってxml形式にしたい場合
-
AudacityでMP3をMIDIに変換
-
拡張子OA2のファイルをWord2010...
-
jpgファイルをpdfのようにつな...
-
自動でpdf化したい
-
DXFからJWWに一括変換す...
-
word作成書類を文面が崩れない...
-
Canon R6で撮影したRAWデ...
-
「.rtf」の拡張子が開けないの...
-
dreamweaverで文字コード変換し...
-
xlsをxlsxに変換しても行が増え...
-
MP3ファイルをMIDIファイルに変...
-
WAVファイルの周波数変換方法を...
-
ビットマップの色数を変更する...
-
拡張子、MPEG4をcdaに変換した...
-
xdwファイルをPDFファイルに変...
-
いつもお世話になっております ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
写真を撮ってxml形式にしたい場合
-
Excelのファイルがいつの間にか...
-
DTCP-IPファイルをmp4などに変...
-
CAD ZSD→DXF変換
-
BUP・IFO・VOBをMACで開きたい。
-
DXFからJWWに一括変換す...
-
AudacityでMP3をMIDIに変換
-
いきなりPDFで文書の切り取り
-
「.rtf」の拡張子が開けないの...
-
word作成書類を文面が崩れない...
-
拡張子OA2のファイルをWord2010...
-
ISOファイルをFLAC、もしくはMP...
-
自動でpdf化したい
-
MT4のEX4ファイルをMQ4ファイル...
-
Canon R6で撮影したRAWデ...
-
BASE64のエンコード時のサイズ...
-
.isoファイルをyoutubeにアップ...
-
WAVファイルの周波数変換方法を...
-
三四郎ファイル を エクセルフ...
-
ワード、エクセルをBMPまたはJP...
おすすめ情報
http://ur0.biz/49w2
こちらを参考に作成致しました。
何故か26行目で
実行時エラー 3004
ファイルに書き込めませんでした
引数1と引数2が同じでも大丈夫とあったのですが、環境とかも有るのでしょうか?
ウーン難しい・・・
進捗
sTextにデータが入らず空っぽのデータが作成される
原因 sText=”” ?
引数 From=直 To=/sh
Sub Utf8ToSjis(a_sFrom, a_sTo)
Dim streamRead As New ADODB.Stream
Dim streamWrite As New ADODB.Stream
Dim sText
つづき
読
streamRead.Type = adTypeText
streamRead.Charset = "UTF-8"
streamRead.Open
Call streamRead.LoadFromFile(a_sFrom)
LFをCRLF処理
書込
streamWrite.Type = adTypeText
streamWrite.Charset = "Shift-JIS"
streamWrite.Open
Call streamWrite.WriteText(sText) 書込
Call streamWrite.SaveToFile(a_sTo, adSaveCreateOverWrite) 保存
コード差分問題は
https://detail.chiebukuro.yahoo.co.jp/qa/questio …
を参照し、フォルダの全ファイル名を持ってくるマクロでループさせてベット保存
その後通常のマクロでと分けることで無事処理完了しました
UTF8群の中にSJISがちらほら混ざってそのたびに止まりましたが、若干気持ち悪いながら完成です
ご助言、ありがとうございました