![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
いつもお世話になります
Webで紹介されている下記のコードを使って、UtF-8形式のテキストファイルに書き込んだ際
先頭レコードの頭に書かれる不明のコードを削除したいのですがその方法が分かれば教えてください
(プログラム)
Sub Sample2()
Dim Target As String
Target = "C:\Temp\Sample.txt"
With CreateObject("ADODB.Stream")
.Charset = "UTF-8"
.Open
.WriteText " 0", 1
.SaveToFile Target, 20
.Close
End With
End Sub
(出力:シフトJisで開いたとき)
・ソ 0
この不明なコードのために次のプログラムステップへ自動的に進めなくて困っています
実際のプログラムでは1行目だけ" 0"を書き込んで後は下記の様に書き直してみましたが
途中所々で全角のコードが変わってしまいました
Dim strRec As String
Open Sample1 For Input As #1
Open Sample2 For Output As #2
Line Input #1, strRec
Print #2, " 0"
Do Until EOF(1)
Line Input #1, strRec
Print #2, strRec
Loop
Close #1
Close #2
以上、よろしくお願いいたします
No.2ベストアンサー
- 回答日時:
こんばんは。
一例ですが、これは、思ったようにうまくいかないものです。
正しく読み込みできれば、ズラすことは可能ですが、決まったパターンのみしか、変換できませまん。
'//
Sub OutTextUTF()
Dim Target As String
Dim outStream As ADODB.stream '参照設定しました。
Target = ""C:\Temp\Sample.txt"
Set outStream = New ADODB.stream
With outStream
.Type = adTypeText '2
.Charset = "UTF-8"
.LineSeparator = adCRLF '-1
End With
With outStream
.Open
.WriteText "あいうえおabcdefg", adWriteLine '2 'ここが出力値
.Position = 0
.Type = adTypeBinary
.Position = 3
End With
'ここまでは、BOM付きの普通のUTF-8出力
'outStream.SaveToFile Target, adSaveCreateOverWrite
'outStream.Close
Dim ReStream As ADODB.stream
Set ReStream = New ADODB.stream
With ReStream
.Open
.Type = adTypeBinary
End With
outStream.CopyTo ReStream
ReStream.SaveToFile Target, adSaveCreateOverWrite
ReStream.Close
outStream.Close
End Sub
おはようございます
いつもお世話になります
実はAutocadLTからのDXFファイルの日本語がUTF-8でないと
ダメだったのですが、これで次のプログラムにつながることが出来ました
いつも本当にお世話になります
これからもよろしくお願い申し上げます
![](http://oshiete.xgoo.jp/images/v2/common/profile/M/noimageicon_setting_14.png?e8efa67)
No.1
- 回答日時:
先頭レコードの頭に作成されている文字列はBOMと呼ばれています。
文字コードをUTFー8で出力する場合(Sub Sample2()の方法で出力した場合)は、必ずBOMが作成されます。
もし、文字コードをUTF-8で出力するがBOMを作成しないで、出力する場合は、イレギュラーな方法ですが、
https://tonari-it.com/excel-vba-utf8n-bom/
に出力方法のサンプルがありますので、それを参考にしてください。
しかしながら、BOMを作成せずにUTF-8で書き込んだテキストファイルをあなたが、提示されている方法(下の方に書かれたコード)で読み込むことはできません。これは、テキストファイルがSJISの場合のみ有効です。
UTF-8(BOM付き)でかかれたものを、UTF-8としてきちんと読み込む場合は、
http://officetanaka.net/excel/vba/file/file10.htm
を参考にしてください。
いつもお世話になります
ご回答の件、ありがとうございます
初めての経験でよい勉強になりました
新たな進展に繋がりそうです
本当に助かりました
これからもよろしくお願い致します
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Excelにて、フォルダ内のTextファイルをマクロで統合すると文字化けしてしまう時の解消コード 4 2023/01/01 07:32
- Excel(エクセル) マクロでテキストファイルを読み込んだ際の最終セルにデータと改行が含まれる問題の改善方法 2 2022/03/25 16:50
- Excel(エクセル) エクセルのVBAについて とあるサイトのコードを参考に、CSVの文字化けを直すVBAを作成しているの 7 2022/11/04 14:15
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/15 15:48
- Visual Basic(VBA) フォルダの場所を可変にしたいです(マクロ) 4 2023/05/11 10:00
- Visual Basic(VBA) 複数csvを横に追加していくマクロについて 2 2023/04/25 09:19
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/15 15:12
- Visual Basic(VBA) excel vbaでvlooupの変数がわかりません。 7 2022/05/30 09:35
- Access(アクセス) アクセス レポートを開いたときにパラメーターの自動入力がしたい 4 2022/11/30 11:21
- Visual Basic(VBA) Excel-VBAでのファイルの開き方 4 2023/02/14 11:01
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
PS4コントローラーをPCでゲーム...
-
4Kの外部モニターに出力すると...
-
printfとputcharの違いは
-
MMDでavi出力が出来ない
-
OBS配信すると、マイクが途切れ...
-
c言語でグラフをつくる
-
センサーのタンパー出力について
-
cout と cerrの違い
-
VBAでIEを操作、ポップアップさ...
-
スマホのバッテリー消費につい...
-
プログラムについての質問です...
-
コンセントの電力は入力と出力...
-
VBA UTF-8形式のテキストファイ...
-
【UWSC】WEBページ中の特定文字...
-
標準出力の上書き
-
エクセルVBAでテキストファイル...
-
Zガンダムのハイザックて、ジェ...
-
中国の電子レンジの火力は何ワ...
-
無停電電源装置(UPS)の待機時...
-
VBAで特定範囲のセルの平均値を...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
PS4コントローラーをPCでゲーム...
-
4Kの外部モニターに出力すると...
-
プログラムについての質問です...
-
printfとputcharの違いは
-
cout と cerrの違い
-
COBOLのMOVEで桁数が異なる場合
-
テキストファイルから特定の文...
-
MMDでavi出力が出来ない
-
コンセントの電力は入力と出力...
-
アクセスでエクセルに出力する...
-
OBS配信すると、マイクが途切れ...
-
coutで出力した文字を消去する...
-
CRC16計算について
-
VBA レジストリの値の読み方に...
-
ACCESS クエリ→フォーム...
-
printfの書式%.*s
-
VBAで有効数字の設定
-
VBAでテキスト出力時のスペース...
-
VBAのExecメソッドで画面を非表...
-
makeで文字化けする。migwのmak...
おすすめ情報