画像ファイルからExcelでドット絵を作成したい!2024年版

ExcelVBA

画像ファイルをExcelワークシートのセルドット絵にする必要があり、過去に作っていたツールを改善しました。セルをドットと見立てて、行高さと列幅を合わせて正方形にしたセルの背景色を書き換えて描画するものです。

これまでのツールは、24ビットBMPファイルにのみ対応していました。これは、BMPファイルは画像データが左下から右上に向かって配置され、各ピクセルごとに3バイト(RGBデータ)を使用して色情報を記録しているため、処理が行いやすかったためです。このファイル形式であれば、画像ファイルを直接バイナリ形式で読み込み、取得したピクセルの色RGB情報をExcelのセルの背景色(Interior.colorプロパティ)にRGB関数を使用して設定するだけの単純なコードで、セルを使用したドット絵が作成できます。このシンプルさから、24ビットBMPフォーマットのみを対象としていたわけです。

当初より、JPEGやPNGなど他の画像形式に対応したいと考えていましたが、これらのフォーマットを解析し展開する必要があり大変そう、実務上も手動でBMPに変換すれば事足りるので対応を見送っていました。今回、ExcelのChartオブジェクトに任意の画像形式をエクスポートする機能があることを思い出し、この機能を利用して、任意の画像ファイルを24ビットBMP形式に変換し、それを今まで同様のプログラムで処理することで、さまざまな画像形式のファイルをサポートすることができるようになりました。

コードは次の通りです。

簡単に解説すると、ワークブックが保存されている同じフォルダ内の画像ファイルを使用して、ワークシート上でドット絵を作成する処理となっています。まず、対象の画像ファイルが存在する場合、ワークブックに新しいシートを追加し、そのシートに画像を挿入します。次に、Chartオブジェクトを使用して画像を適切に配置し、画像がぴったり収まるようにChartオブジェクトのサイズを画像のサイズに合わせます。画像の配置が完了した後、画像をBMPフォーマットでエクスポートし、このエクスポートされたBMPファイルを使用してドット絵の生成処理を実行します。このプロセスを通じて、様々な形式の画像をExcelのドット絵として再現することが可能になりました。

多量の、そして様々ファイル形式の画像を一括して、Excelドット絵に変換したい場合に、とても便利だと思いますが、そのような機会が訪れることは、あまりないかもしれません(笑)。

それでは、よいVBAライフを!

【2024/02/25 追記】
「Excelドット絵2024」を活用して、ドラクエ4のバトランド城を歩き回れるワークブックを、こちらにエントリーしました。ファイルをダウンロードいただけます。
https://dqw.xlsgm.net/dq4/

このページで利用している株式会社スクウェア・エニックスを代表とする共同著作者が権利を所有する画像の転載・配布は禁止いたします。
© 1990 ARMOR PROJECT/BIRD STUDIO/SPIKE CHUNSOFT/SQUARE ENIX All Rights Reserved.

コメント

  1. Pond より:

    取り込める画像の大きさは、EXCELの仕様と制限にある「セルの固有の書式設定/セルのスタイル:65,490」が影響すると思います。

    • デジィEXP より:

      Pondさん、ありがとうございます!おっしゃる通り、同時発色数がそれを超えると設定不可のエラーが発生すると思います。

タイトルとURLをコピーしました