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で質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 複数ブックの統合について Excel VBA 1 2022/05/13 09:48
- Excel(エクセル) 【マクロ】同じフォルダ内にある複数ブックから1つのブック内の1シートにデータを集めたい 6 2022/09/28 18:16
- Excel(エクセル) 【VBA】フォルダAにある2つのファイルの内1つを、フォルダBへ。もう1つを、フォルダBへ移動したい 6 2022/07/26 08:51
- Excel(エクセル) フォルダ内のファイル全てに対して、シート名・ファイル名を変更する方法(マクロ VBA) 2 2022/04/02 10:56
- Visual Basic(VBA) Excel-VBAでのファイルの開き方 4 2023/02/14 11:01
- Excel(エクセル) Excel、同じフォルダ内のExcelファイルの特定シートのみを1つのファイルに集約したい 8 2022/09/07 15:12
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/08/08 11:02
- Visual Basic(VBA) 複数ファイルのデータの統合について 12 2022/05/14 12:03
- Excel(エクセル) 【困っています】VBA 追加処理の記述を教えてください。 1 2022/08/25 22:54
- システム vba シートの追加について 2 2023/05/17 15:58
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
CAD ZSD→DXF変換
-
写真を撮ってxml形式にしたい場合
-
xdwファイルをPDFファイルに変...
-
DTCP-IPファイルをmp4などに変...
-
BASE64のエンコード時のサイズ...
-
拡張子OA2のファイルをWord2010...
-
jpgファイルをpdfのようにつな...
-
BUP・IFO・VOBをMACで開きたい。
-
「.rtf」の拡張子が開けないの...
-
DXFからJWWに一括変換す...
-
自動でpdf化したい
-
MT4のEX4ファイルをMQ4ファイル...
-
「xlsファイル」が「Excel住所...
-
WAVファイルの周波数変換方法を...
-
pngファイルをExcelに変換する方法
-
IllustratorのデータをHTMLに変...
-
PDFまたはドキュワークスをJP...
-
ビットレート1536Kbpsって?
-
ビットマップの色数を変更する...
-
AudacityでMP3をMIDIに変換
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
xdwファイルをPDFファイルに変...
-
CAD ZSD→DXF変換
-
写真を撮ってxml形式にしたい場合
-
DTCP-IPファイルをmp4などに変...
-
BASE64のエンコード時のサイズ...
-
DXFからJWWに一括変換す...
-
「.rtf」の拡張子が開けないの...
-
pngファイルをExcelに変換する方法
-
mac です。vob ファイルを mp4 ...
-
いきなりPDFで文書の切り取り
-
word作成書類を文面が崩れない...
-
BUP・IFO・VOBをMACで開きたい。
-
三四郎ファイル を エクセルフ...
-
ビットマップの色数を変更する...
-
画像をPhotoshopで開きたい
-
自動でpdf化したい
-
複数のWordファイルに一括でPDF...
-
拡張子OA2のファイルをWord2010...
-
CANDY→AutoCADへの変換
-
jpgファイルをpdfのようにつな...
おすすめ情報
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がちらほら混ざってそのたびに止まりましたが、若干気持ち悪いながら完成です
ご助言、ありがとうございました