Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


576 / 13645 ツリー ←次へ | 前へ→

【79607】Byte型1次元配列に入っているBMPデータを表示 say_d 18/2/3(土) 22:45 発言[未読]
【79608】Re:Byte型1次元配列に入っているBMPデータ... Abyss2 18/2/4(日) 22:22 回答[未読]
【79609】Re:Byte型1次元配列に入っているBMPデータ... say_d 18/2/4(日) 23:34 発言[未読]
【79610】Re:Byte型1次元配列に入っているBMPデータ... Abyss2 18/2/5(月) 1:21 回答[未読]

【79607】Byte型1次元配列に入っているBMPデータを...
発言  say_d  - 18/2/3(土) 22:45 -

引用なし
パスワード
   質問:Excel VBAでBMP画像をbyte型の1次元配列に取り込んであります。そのデータをuserform上に配置したimageへ表示する事はできますか?

なぜ必要か?:Excel VBAでBMPデータをByte型に取り込んで1ピクセル単位で画像を処理しています。その結果を表示して確認したいのですがbmpファイルに書き出して確認をするとかなり時間がかかる為、userform上に表示して素早く目視確認をしたので。

具体的には、ビットマップをクリップボード経由で aaa()as byte に取り込み済みで UserForm1.Image1.Picture = LoadPicture(aaa())のような形で表示できればと考えています。

どなたかご教授お願いいたします。

【79608】Re:Byte型1次元配列に入っているBMPデー...
回答  Abyss2  - 18/2/4(日) 22:22 -

引用なし
パスワード
   既にBMPバイト配列を手元に持っているならば
配列をIStreamオブジェクトに乗せてから
OleLoadPictureでUserFormに表示する手順がラクだと思いますね。

msdn.microsoft.com/ja-jp/library/windows/desktop/ms693724(v=vs.85).aspx

【79609】Re:Byte型1次元配列に入っているBMPデー...
発言  say_d  - 18/2/4(日) 23:34 -

引用なし
パスワード
   Abyss2さんありがとうございます。
ご教授頂いたキーワードをもとに調べてみたところVBAではなくVBの内容ですが以下のページが参考になりそうでした。

yaplog.jp/orator/archive/19

まさに私のやりたい事が関数サブルーチンとして作られていそうです。
ただ、今のところうまくいっておりません。
上記ページの関数部分及び、宣言部を転記して

  Set UserForm1.Image1.Picture = BytesToPicture(aaa())

としても何も表示されません。
まだ、調べてみたいと考えていますがもしよろしければアドバイスが頂ければ嬉しいです。


▼Abyss2 さん:
>既にBMPバイト配列を手元に持っているならば
>配列をIStreamオブジェクトに乗せてから
>OleLoadPictureでUserFormに表示する手順がラクだと思いますね。
>
>msdn.microsoft.com/ja-jp/library/windows/desktop/ms693724(v=vs.85).aspx

【79610】Re:Byte型1次元配列に入っているBMPデー...
回答  Abyss2  - 18/2/5(月) 1:21 -

引用なし
パスワード
   配列の先頭値は確認しましたか?

つまり、BMPファイル形式なら
aaa(0) = 66
aaa(1) = 77

JPGファイル形式なら
aaa(0) = 255
aaa(1) = 216

のはずです。これ以外だと失敗します。

576 / 13645 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free