• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VBAを使って、一部バイナリデータを読み書き)

VBAを使った一部バイナリデータの読み書き方法

このQ&Aのポイント
  • VBAを使用して、一部のバイナリデータを読み書きする方法について教えてください。
  • あるファイルの30行目までのデータを文字列として抽出し、31行目以降のデータをバイナリとして抽出する方法をお教えください。
  • バイナリデータを読み込むVBAの方法はいくつかありますが、一部だけバイナリとして読み込む方法はわかりません。ご教授いただけますか?

質問者が選んだベストアンサー

  • ベストアンサー
noname#212058
noname#212058
回答No.4

No.2 です。 > 読み込みファイルから、ヘッダ部位を配列a(30)に読み込んで、 > バイナリ部位をb(256)に読み込んだとします。 > どうやって、テキストデータとバイナリデータを合体させれば > 良いですか? すいません、『やりたいこと』を読み違えていました。 ヘッダ部位、バイナリ部位の両方とも同じファイルに出力 したいということですね。 以下の手順で行けると思います。  1. 書込ファイルにテキストでヘッダを出力  2. 書込ファイルをバイナリモードで OPEN  3. 出力位置を末尾に移動 (SEEK を使います)    http://homepage1.nifty.com/MADIA/vb/vb_bbs2/200501/200501_05010100.html  4. バイナリ部位をファイルに出力 # ヘッダ部分をテキスト出力せずに、1文字づつASC関数で # ASCIIコードに変換して全部バイナリ出力するという方法も # 考えられます。

その他の回答 (3)

noname#212058
noname#212058
回答No.3

No.2 です。 バイナリデータの書き込み方法は、質問者さんが 書かれているサイトにサンプルがありますよね。 1. 読込ファイルをオープンして、31行目まで読み飛ばす 2. 書込用のファイルをオープン 3. 読込ファイルから1バイトづつ読み込み、書込ファイル   に1バイトづつ出力する。これを読込ファイルの最後   まで繰り返す 4. 全部終わったら2つのファイルをクローズ で、できると思いますが。 3. の具体的なコードが判らないということでしょうか…。

BUCHURUN
質問者

お礼

ありがとうございます。 分からないのは四番目の、全部終わったら2つのファイルをクローズ というところです。 読み込みファイルから、ヘッダ部位を配列a(30)に読み込んで、 バイナリ部位をb(256)に読み込んだとします。 どうやって、テキストデータとバイナリデータを合体させれば良いですか?

noname#212058
noname#212058
回答No.2

バイナリモードで先頭から読み込んでいって、30個目の 改行コードまで読み飛ばせば良いと思います。 Windowsの改行は CR+LF ですから、先頭から読み込んで いって 30個目の LF (ASCIIコード 10) の次からが31行目 (バイナリデータ)ですよね。

BUCHURUN
質問者

お礼

ありがとうございます。 この方法も良いですね でもファイルを出力する時にはどうしたら良いですか?

  • bin-chan
  • ベストアンサー率33% (1403/4213)
回答No.1

> また、30行目にheader endと書かれています。 ここまでのByte数を数えておけば?

BUCHURUN
質問者

お礼

ありがとうございます。 確かにその通りですね。 でもファイルを出力する時にはどうしたら良いですか? ファイルの途中までがASCII形式で途中からバイナリデータにするにはどうしたら良いですか?