- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VBAでバイナリとして配列の一部を書き込む方法)
VBAで配列の一部をバイナリとして書き込む方法
このQ&Aのポイント
- VBAを使用して、配列の一部をバイナリとして書き込む方法について教えてください。
- 配列a(256, 256)の一部の数値のみをバイナリデータとして書き込みたい場合、どのようにすればよいですか?
- また、配列の次元を変更して特定の要素のみを保持した配列を作成する際に、ReDim Preserveを使うとエラーが発生します。この問題を解決するにはどうすればよいですか?
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
切り出し後のサイズの配列bを作って、bにaの値をコピーしてから Put #1,b すりゃ良い。 ・Option Base 0の場合 //a(256,256)の配列の添え字は0~255。 //b(206,206)の配列の添え字は0~205。 Dim b(206,206) As Integer For x = 50 To 255 For y = 50 To 255 b(y - 50,x - 50) = a(y,x) Next Next Put #1,b ・Option Base 1の場合 //a(256,256)の配列の添え字は1~256。 //b(206,206)の配列の添え字は1~206。 Dim b(206,206) As Integer For x = 51 To 256 For y = 51 To 256 b(y - 50,x - 50) = a(y,x) Next Next Put #1,b 要らないのは、50行50列分なのか、51列51行なのか、良く判らん。 質問文では、Option Baseを0のつもりで書いている部分と1のつもりで書いている部分がゴッチャになってて訳が判らなくなっているので、自分でもう少し整理してみよう。