2015年1月17日土曜日

ExcelでDump

 バイナリファイルをダンプしたい、ってことありますよね(?)

 Excel VBAでDumperを作ってみました。

 ソースコードを以下に載せます。VBAのモジュールにコピペすれば使えるはずです。

 セキュリティの関係上、マクロのダウンロードは推奨されないですが、こちらにファイルをアップロードしておきます。

 興味ある方は、ご自由にご利用ください。

--------------------------------------------------
Option Explicit

Public Sub test()
    Dim filename As String
    filename = Application.GetOpenFilename
 
    'filename = ThisWorkbook.Path + "\test.bmp"
    'filename = ThisWorkbook.Path + "\test.wav"
    'filename = ThisWorkbook.Path + "\test.mid"
 
    dump filename, 0
End Sub

'ファイルのダンプ
Private Sub dump(filename As String, offset As Long)
    Dim i As Long
    Dim j As Long
    Dim size As Long
    Dim buf() As Byte
 
    size = 256  '読み込むデータサイズ
    ReDim buf(size - 1) As Byte
 
    Open filename For Binary As 1
        'オフセット
        For i = 0 To offset - 1
            Get 1, , buf(0)
        Next i

        'Seek関数を使うなら、
        'Seek 1, offset + 1
     
        'データの読み込み
        Get 1, , buf
    Close 1
 
    'データの表示
    For i = 0 To 15
        For j = 0 To 15
            '10進数表示
            'Sheet1.Cells(i + 1, j + 1) = buf(i * 16 + j)
         
            '16進数表示
            Sheet1.Cells(i + 1, j + 1) = Hex(buf(i * 16 + j))
         
            '文字列表示
            'Sheet1.Cells(i + 1, j + 1) = Chr(buf(i * 16 + j))
        Next j
    Next i
End Sub

0 件のコメント:

コメントを投稿