VB(VBA)で、バイナリデータを使ってテキストファイルを作成したいの
VB(VBA)で、バイナリデータを使ってテキストファイルを作成したいのですが、
例えば、"A"が一文字のみのShift-JIS もしくはunicodeのテキストファイルを作るため、
(下記の確認はShift-jis で行っています。)
Dim ByteData As Byte
ByteData = AscW("A")
Open "C:\A.txt" For Binary Access Write As #1
Put #1, 1, ByteData
Close #1
としました。
できあがったファイルをバイナリエディタで確認すると、
41
となっています。
(Unicode は 41 00 2バイト文字でリトルエンディアンのため)
この41は、"A" の文字コード(Shift-JIS)「65」の16進表記です。
この「41」という値を使ってバイナリモードでテキストファイルを作成したいのですが、
どのようにすればよいでしょうか?
上記
Put #1, 1, ByteData
の部分を、
1.Put #1, 1, 41
としたところ、通常表示はできないファイルができあがったみたいです。
バイナリモードで 「29 00 20 20」でした。
文字コード00 に該当する文字がないためだと思います。
2.Put #1, 1, "41"
としたところ、「41 」(バイナリモードで 「34 31 20 20」)
(41の後ろは半角空白)
で×でした。
3.Put #1, 1, CLng("&H" & 41)
としたところ、通常表示はできないファイルができあがったみたいです。
バイナリモードで 「41 00 00 00」でした。
4.ByteData = CLng("&H" & 41)
Put #1, 1, ByteData
これでやっとできました。
この他にも方法があるのか?と思い、質問させていただきました。
ご指導よろしくお願いいたします。
お礼
Bzですか。今度試してみます。 Stirlingは現在使っていますがあまりそのような使い方には向いてない気がします。