【ファイルを保存】オートシェイプを画像ファイルで出力する
Excelシート上で描画したオートシェイプを画像ファイルとして出力するコードを紹介します。
報告書とかマニュアルなどの作成でイラスト画像を使う機会は多いと思います。
イラストレータなどで作成したりしなくてもExcelには、オートシェイプという便利な機能があります。
イラストレータとかを起動させると Windows の処理が重くなりますし、むしろシンプルなイラスト画像や略図なら使い慣れている方の多いオートシェイプで作ったほうが効率的ともいえます。
ただオートシェイプは直接画像で出力はできないので画像として出力するには、ひと工夫する必要があります。
今回は、それをExcelマクロで自動で行うコードを構築してみました。
上記のコードは、Excel上でWebページとして保存する処理を利用しています。
Webページとしての保存を行うとファイル名.files という名前のフォルダーが作成されてフォルダー内にワークシート上のオートシェイプが PNG 画像として保存されます。
このコードは、その一連の処理を「マクロの記録」で作成し、それにオートシェイプのグループ化、保存のダイアログ表示などを追加したものです。
それとこのコードは、注釈にもあるようにアクティブシート内についてセル範囲(A1~Z50)にあるオートシェイプしか処理できません。
オートシェイプのある範囲を所得するコードを追加すると記述が長くなるので今回は、省略しました。
それと画像ファイルのみを出力させようとするなら作成されたフォルダーから対象の画像をフォルダー外に移動させてその後にフォルダーを削除する処理が必要です。
今回は、シンプルな例としてさきほどのコードを紹介しました。
次回は、画像ファイルのみを出力し、なおかつコードの記述をコンパクトにして紹介をしたいと思います。