![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?8acaa2e)
No.2ベストアンサー
- 回答日時:
No.1の続きです。
書き込み文字数の都合です。
以下の関数を呼び出しますので、追加してください。
Function Deci(topnumber As Byte, lownumber As Byte) As Integer
Dim number As Integer
If &H80 > topnumber Then
number = topnumber * 256 + lownumber
Else
number = (topnumber - 255) * 256 + lownumber - 256
End If
Deci = number
End Function
No.1
- 回答日時:
私も、レーザープロジェクタ用のデータを作成するにあたり、同様の問題に取り組んだことがあります。
まず、フリーの「画像→ベクトルデータ変換ソフト」を探しました。
BMPからレーザープロジェクタの標準フォーマットとされる、ILDA形式のファイルを作成してくれるソフトです。
製作者の書き込み
http://www.photonlexicon.com/forums/showthread.p …
ダウンロード直リンク
http://www.xs4all.nl/~hobbybob/laser/Software/bm …
ただし、このままでは使用に耐えなかったので、いったんEXCELに読み込み、自動的に不要部分(直線上の余分な点)などを処理するマクロを用意しました。←時間が無かった&大量に処理したかった。
ILDAはバイナリファイルなので、恐らくあなたの使用目的には則していないと思います。
そこで以下に、ILDAをEXCELで読み込んだ時の入力部分のマクロをあげておきます。
現物ママですので、解析、改造して使用してください。
'初期化
Dim name As String
Dim InputFileName As String
Dim InputFn As Long
Dim buf() As Byte
Dim i As Long
Dim j As Long
'ファイル読み込み
'読み込むファイル
InputFileName = "D:\ILDA\test.ild"
Worksheets("操作テーブル").Cells(2, 3).Value = InputFileName
InputFn = FreeFile
Open InputFileName For Binary As #InputFn
ReDim buf(LOF(InputFn))
Get #InputFn, , buf
Close #InputFn
'データの展開
'ヘッダテーブル展開
Worksheets("ILDAデータテーブル").Select
'仕様
Cells(3, 1).Value = Chr(buf(0)) + Chr(buf(1)) + Chr(buf(2)) + Chr(buf(3))
'ファイル形式
Cells(3, 2).Value = CStr(buf(4)) + CStr(buf(5)) + CStr(buf(6)) + CStr(buf(7))
'フレーム名称
Cells(3, 3).Value = Chr(buf(8)) + Chr(buf(9)) + Chr(buf(10)) + Chr(buf(11)) + Chr(buf(12)) + Chr(buf(13)) + Chr(buf(14)) + Chr(buf(15))
'会社名
Cells(3, 4).Value = Chr(buf(16)) + Chr(buf(17)) + Chr(buf(18)) + Chr(buf(19)) + Chr(buf(20)) + Chr(buf(21)) + Chr(buf(22)) + Chr(buf(23))
'総ポイント数
Cells(3, 5).Value = CLng(buf(24) * 256 + buf(25))
'フレーム番号
Cells(3, 6).Value = CLng(buf(26) * 256 + buf(27))
'総フレーム数
Cells(3, 7).Value = CLng(buf(28) * 256 + buf(29))
'スキャナーヘッド番号
Cells(3, 8).Value = CInt(buf(30))
'予備
Cells(3, 9).Value = CInt(buf(31))
'データテーブル展開
For i = 1 To Cells(3, 5)
j = 6 * (i - 1)
'No.
Cells(3 + i - 1, 11).Value = i
'X座標
Cells(3 + i - 1, 12).Value = Deci(buf(32 + j), buf(33 + j))
'Y座標
Cells(3 + i - 1, 13).Value = Deci(buf(34 + j), buf(35 + j))
'ステータス
Cells(3 + i - 1, 14).Value = CLng(buf(36 + j))
'色情報
Cells(3 + i - 1, 15).Value = CLng(buf(37 + j))
Next
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 教育ソフト・学習ソフト 教育関係の方、パソコンに詳しい方に聞きたいです。 ICT教育で、タブレットを使った授業をしなければな 2 2022/04/07 23:05
- 建築士 建築士製図試験での縦距離の数値の書き方を教えて下さい 3 2023/07/16 11:36
- 中学校 中1数学 比例のグラフの座標の読み取り 4 2023/03/28 12:26
- 数学 3次方程式の解で実部が正のものが存在する条件の調べ方 0 2023/03/23 15:07
- 数学 数学の問題がわかりません。(球の中心の座標を求める問題) 2 2023/02/14 15:52
- Excel(エクセル) エクセルで同じ数字同士を自動で線で結ぶVBAを教えてください 6 2022/04/26 23:13
- 生物学 脳の記録部位の集計方法について 1 2022/06/11 21:26
- 統計学 統計分析とExcelに詳しい方、何卒よろしくお願いいたします。 6 2022/05/27 10:30
- Chrome(クローム) インターネットの各サイトの画像が表示されない 3 2022/12/04 22:43
- その他(プログラミング・Web制作) VBA 1 2023/01/19 16:19
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excel→Accessへ貼り付けがおかしい
-
線の画像を座標数値化するソフ...
-
Accessクエリーで両方のテーブ...
-
Accessのクエリでデータの入力...
-
AccessからExcelのデータを消す...
-
グラフとデータテーブルの順序...
-
ACCESSをみんなで共有して使いたい
-
EXCELからSharepointデータを参照
-
GETPIVOTDATAを使...
-
Access 旧データを新データに入...
-
WIN7 64bit版でOffice 32bit
-
アクセスのコンボボックスのデ...
-
Accessでテーブルのリンクを新...
-
Accessで入荷処理をしようとし...
-
Power BI (Power Queryでのテー...
-
Accessのリンクテーブルのパス...
-
ORACLEでINSERT処理が遅い
-
このリレーションシップを作成...
-
Excel 2019 のピボットテーブル...
-
エクセルVBAで5行目からオート...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Accessのクエリでデータの入力...
-
Accessクエリーで両方のテーブ...
-
Accessファイルを作成者以外は...
-
Excel→Accessへ貼り付けがおかしい
-
Accessのリンクテーブルのパス...
-
GETPIVOTDATAを使...
-
AccessのクエリをExc...
-
アクセスのコンボボックスのデ...
-
Access 旧データを新データに入...
-
AccessからExcelのデータを消す...
-
EXCEL データテーブルの数字を...
-
Accessのことで教えてください...
-
エクセル 横棒グラフのデータテ...
-
ACCESSのサブフォームでの既定...
-
データのまとめかた(アクセス...
-
EXCELからSharepointデータを参照
-
Access2000でピボットテーブル
-
Excelについてご質問です。 テ...
-
Accessでテーブルのリンクを新...
-
Accessで入荷処理をしようとし...
おすすめ情報