** [[OOobbs/96]] [#uabfa37a] -''サマリ'': ファイルから8ビットずつ読み込む方法 -''環境'': Calc -''状態'': 解決 -''投稿者'': [[Kuma]] -''投稿日'': 2006-03-30 (木) 16:58:12 *** 質問 [#a3f23694] OOo2.0.1で指定ファイルのデータを8ビットずつ読み込み、calcのセルにHEX表示するマクロを下記の様に作りました。 ExcelVBAの場合は問題無く動作して表示出来たのですが、calcでは2行目の Dim bit8 As Byte でエラー『不明なデータの種類』になってしまいます。calcでは8ビットずつ読み込む方法はどの様にするのでしょうか。宣しくお願い致します。 Sub CommandButton1_Click() Dim bit8 As Byte Dim r As Integer, n As Integer Dim dumpdata As String, bitdata As String oSheet1=ThisComponent.getSheets.getByName("操作シート") oSheet2=ThisComponent.getSheets.getByName("出力シート") filepath =oSheet1.getCellRangeByName("b10").String If filepath = "" Then MsgBox "ファイルパスが設定されていません", 16 '[b10].Select Exit Sub End If Open filepath For Binary Access Read As #1 r = 1 n = 0 dumpdata = "" Do Get #1,,bit8 If bit8 < 16 Then bitdata = "0" & Hex$(bit8) else bitdata =Hex$(bit8) End If dumpdata = dumpdata & bitdata & " " If EOF(1) = True Then oSheet2.getCellByPosition(0,r-1).String = dumpdata r = r + 1 Exit Do End If n = n + 1 If n >= 24 Then oSheet2.getCellByPosition(0,r-1).String = dumpdata r = r + 1 n = 0 dumpdata = "" End If Loop Close #1 MsgBox "完了しました。全部で" & Str(r - 1) & " 行有ります。",64 End Sub *** 回答 [#f9b45c8a] -やっと分かりました -- [[Kuma]] &new{2006-04-17 (月) 22:06:34}; 下記のコードで読めました。 Sub ByteRead oFileAcc=CreateUnoService("com.sun.star.ucb.SimpleFileAccess") oInputStream=CreateUnoService("com.sun.star.io.DataInputStream") vData=oFileAcc.openFileRead(sFileURL)'<---sFileURLは読み込みたいファイルのURL名 oInputStream.setInputStream(vData) on error goto error1 Do bit8=oInputStream.readByte() And &H000000FF MsgBox Hex$(bit8) Loop error1: End Sub #comment |