« 2008年07月21日 | メイン | 2008年08月31日 »

2008年07月26日

画像からGetPixelでピクセル情報を取得し、セルの色を変更2(Excel VBA)

前回の記事のVBAのプログラムを変更してパレットを変更するようにしてみました。
これで50色程度までなら元の画像と同じようにExcel上に表示できます。
(あまり意味はないVBAスクリプトですが^^;)

また、前回わかりやすいように冗長化していた部分を排除し、
さらに描画処理を一時的に停止することにより高速化しました。

※画像はあらかじめ50色以下に減色しておいてください。
※パレットを変更するので、他のExcelで開いているファイルは
閉じておいたほうがよいです。
※エラー処理は省略しているので、画像より大きい範囲に対して
 GetPixelしたりしないでください。。

Excel_color_P.png

VBAサンプルは続きから

あらかじめCommandButton1、Image1をUserFormに作成しておきます。
 今回もコードはUserForm1だけに書くだけでよいです。
 C:\test.bmp"にテスト用の画像を配置しておきます。
 (サンプルでは160*160まで。重くなるが、コード変更でさらに大きい画像でも対応可)