バイナリファイルの入出力@Excel マクロ・VBA

バイナリモードでファイルを読み込み、書き込みを行います。

バイナリファイル読み込み
Openステートメントでモードを「Binary」で開きます。
LOF関数にてファイルの長さを取得し、Byte配列を初期化します。
Getにて、ファイルを読み込み、Byte配列に格納します。

バイナリファイル書き込み
Openステートメントでモードを「Binary」で開きます。
書き込みたいByteをPutにて書き込みます。



Sub test()

    Dim inputFileName As String
    Dim inputFn As Long

    Dim buffer() As Byte

    Dim outputFileName As String
    Dim outputFn As Long


    '読み込むファイル
    inputFileName = "C:\in.jpg"

    '空いているファイル番号
    inputFn = FreeFile

    'バイナリファイル読み込み
    Open inputFileName For Binary As #inputFn
        'ファイルの長さで配列を初期化
        ReDim buffer(LOF(inputFn))

        'ファイルをバイナリで読み込んでByte配列に格納
        Get #inputFn, , buffer
    Close #inputFn

    
    '書き込むファイル
    outputFileName = "C:\out2.jpg"

    '空いているファイル番号
    outputFn = FreeFile

    Dim i As Long
    'バイナリファイル書き込み
    Open outputFileName For Binary As #outputFn
        For i = 0 To UBound(buffer) - 1
            'ファイルにByteを書き込み
            Put #outputFn, , buffer(i)
        Next
    Close #outputFn

End Sub




Copyright (C) Excelマクロ・VBAのお勉強. All Rights Reserved.