【VBA】バイナリファイルを読み込む
VBAでバイナリファイルを読み込む方法を紹介します。
* 説明
①ファイルを開くにはOpenステートメントを利用する。
Open ファイル名 For ファイル モード Access ファイルの開き方 As ファイル番号
説明 | 例 | |
---|---|---|
ファイル名 | 開けるファイル名を指定する文字列 | C:\temp\test.txt |
ファイル モード | ファイル モードを指定する キーワード Append Binary Input Output Random |
Binary |
ファイルの開き方 | 開いたファイルに対して許可される操作を指定するキーワード Read Write Read Write |
Read |
ファイル番号 | 有効なファイル番号 次に使用可能なファイル番号を取得するには、FreeFile 関数を使用する |
1 |
②Openステートメント用に、有効なファイル番号を取得する。
Dim lFNum As Integer lFNum = FreeFile
③ファイルサイズを取得し、ファイルから取り出すデータのサイズを取得する。
Dim lFileSize As Long lFileSize = FileLen (ファイル名)
ファイルをOpenする前にサイズを撮る場合にFileLen関数を使います。
ファイルをOpenしてからサイズを撮りたい場合はLOF関数を使用してください。
④ファイルからデータを取得する
Dim lBin() As Byte Get ファイル番号(①で指定した番号), , lBin
⑤ファイルを閉じる
Close ファイル番号
* おまけ
使いやすいように関数化してみました。
Function ReadlBinFile(aFilePath As String) As Byte() Dim lBin() As Byte '③ファイルサイズを取得する Dim lFileSize As long lFileSize = FileLen(aFilePath) If lFileSize = 0 Then 'ファイルサイズが0ならば処理を抜ける ReadlBinFile = lBin Exit Function End If ReDim lBin(lFileSize) '②有効なファイル番号を取得する Dim lFNum As Integer lFNum = FreeFile '①指定ファイルを開く Open aFilePath For Binary Access Read As lFNum '④ファイルからデータを取得する Get lFNum, , lBin '⑤ファイルを閉じる Close lFNum ReadlBinFile = lBin End Function
下記のように呼び出して使えます。
Sub ReadBin() Dim lPath As String lPath = "C:\temp\test.txt" Dim lBin() As Byte lBin = ReadlBinFile(lPath) Debug.Print ConvertBinToText(lBin) End Sub
C:\temp\test.txt
12345 12345
出力結果
31323334350D0A0D0A3132333435
確認に使ってるConvertBinToText関数は下記のリンクにあります。
wakao-institute.hatenablog.com
ぜひ使ってみてください!