質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.31%
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

VBScript

VBScript(Visual Basic Scripting Edition)はMicrosftが開発したスクリプト言語であり、Visual Basicのサブセットです。

Q&A

解決済

3回答

700閲覧

作成したテキストファイル(CSV)の文字コードについて

u_zu

総合スコア53

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

VBScript

VBScript(Visual Basic Scripting Edition)はMicrosftが開発したスクリプト言語であり、Visual Basicのサブセットです。

0グッド

0クリップ

投稿2023/09/22 06:25

実現したいこと

CSVファイルをCreateTextFileで作成しようとしています。文字コードは初期設定でASCIIになると
認識していたのですが、仮の作成段階で、結果が一貫していないように思え、
質問させていただきます。今回はASCIIで作成したいのです。

よろしくお願いします。

前提

エクセルのVBAからコードを書きました。
Microsoft Scripting Runtimeに参照設定をしました。

発生している問題・エラーメッセージ

作成したCSVファイルをメモ帳で開いたときに、文字コードが ANSIになったり、UTF-8になったりしています。 コードのミスなのか、何か誤って認識しているのか、わかりません。 しかもCreateTextファイルで作成されるテキストファイルはANSIかUTF-16のどちらかと思っていたのですが。。。

該当のソースコード

Sub test() Dim myFSO As New FileSystemObject Dim myCSV As TextStream Set myCSV = myFSO.CreateTextFile("C:\123.csv") Dim str1 As String str1 = "あいうえお" myCSV.WriteLine str1 myCSV.Close Set myCSV = Nothing Set myFSO = Nothing End Sub

試したこと

上記のコードで作成されたCSVファイルをメモ帳で開くと、ANSIと表示されます(その1.png)イメージ説明

ただ、コードの変数 strを ”123abc” や "***" などにして、メモ帳で開くとUTF-8と表示されます
イメージ説明イメージ説明(その2.png)(その3.png)。

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

メモ帳側がUTF-8対応になった影響で、他の回答されている方が書かれている通り

どちらでも解釈できるものはUTF-8にする

という処理になっているだけです。
あまり気にされない方が良いかと思います。

投稿2023/09/22 07:03

toge_

総合スコア317

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

u_zu

2023/09/22 08:06

どうもありがとうございます。参考になりました。
guest

0

ベストアンサー

シフトJISでもUTF-8でも、半角英数(ASCII領域)は全く同じバイト列となり、区別ができません

ASCIIしか書かれていないテキストファイルは、ANSI(シフトJIS)として解釈しても、UTF-8として解釈しても、同じ文字が書かれたものとして扱われます。

投稿2023/09/22 06:38

maisumakun

総合スコア146544

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

maisumakun

2023/09/22 06:42 編集

ASCIIだけが書かれたテキストファイルの文字コードを何だと認識するかは、エディタ次第です。 (コメントが書けるようなファイルで、かつUTF-8あるいはシフトJISとして認識させたいなら、「あえて全角文字を書いておく」手段も使えますが、ASCIIだけのCSVファイルではそのようなことも不可能です)
u_zu

2023/09/22 08:04

同じバイト列ということか。なるほど。 どうもありがとうございます。
guest

0

上記のコードで作成されたCSVファイルをメモ帳で開くと、ANSIと表示されます

Windows のメモ帳(notepad.exe)によってそのCSVファイルを開く際にキャラクタセットを特に指定しなかった(エクスプローラーから開いた、もしくはメモ帳の[開く]ダイアログにおいて「自動検出」を選択した状態で開いた)のであれば、それは単にテキストファイルに記録されているデータがメモ帳によって解析された結果、「このファイルのキャラクタセットは ANSI である」と推定された結果に過ぎません。

ただ、コードの変数 strを ”123abc” や "*******" などにして、メモ帳で開くとUTF-8と表示されます

そのテキストファイルに記録されている文字列が全てASCII文字セット(0-127)の文字で構成されているため、メモ帳のデフォルトのキャラクタセット=UTF-8として開いているだけでしょう。

投稿2023/09/22 06:59

編集2023/09/22 07:03
sk.exe

総合スコア1077

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

u_zu

2023/09/22 08:05

どうもありがとうございます。参考になりました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.31%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問