セルの内容を画像のPNGファイルで保存することが可能

セルに表示されている内容をそのまま画像としたい場合があります。

他の資料の材料としたい場合などですね。

Excelでの操作は以下の手順になります。

  1. 画像化したいセル範囲を選択します。
  2. ホームタブ→コピー→図としてコピー を選択します。
  3. 図のコピーダイアログで、画面に合わせる、ピクチャを選択してOKを押します。
  4. ホームタブ→貼り付け→形式を選択して貼り付け を選択して、図(拡張メタファイル)でOKを押します。
  5. ファイル→名前を付けて保存 でダイアログを開きます。
  6. ファイルの種類でhtmlを選択します。
  7. 上書き保存で再発行(または発行)を選択して、保存ボタンを押します。
  8. Webページとして発行ダイアログで、OKを押します。
  9. 保存先のフォルダに~filesというフォルダが出来ているのでその中にPNGファイルが作成されています。

以下のマクロはセルの表示内容をPNG画像として保存します。

ソースコード

セルをPNG画像に変換して保存する関数です。

引数が3つあり、それぞれ、引数1=作成するPNGファイルを保存するフォルダ、引数2=PNG画像に変換する単一セルまたは結合セル、引数3=省略可。作成するPNGファイル名の先頭文字列 を指定します。

filesフォルダに「A1_image001.png」という形式のファイルが作成されます。

引数rが単一セルまたは結合セルを指している場合はxx_image001.pngを採用します。セル範囲を指している場合はxx_image004.pngなのかxx_image999.pngなのかどれが正解なのか判別できないためfilesフォルダを残したままにしています。

 

テストコード

上の関数を呼び出すテストコードです。

5行目のループは選択範囲を各セルごとにPNGファイル化しています。

6行目と7行目が上の関数を呼び出す部分です。6行目はコメントアウトしていますが、PNGファイル名の先頭文字を3番目の引数として渡しています。7行目のように省略しても構いません。省略時はPNGファイル名の先頭に「PNG_」と付きます。

11行目は選択範囲をPNGファイル化しています。

実行前
セル範囲を選択します。

実行後

個別セル指定のPNGファイル

指定フォルダ直下に各セルのPNGファイルが保存されています。

A1_image001.png
A2_image001.png
A3_image001.png
A4_image001.png
A5_image001.png
A6_image001.png
B1C2_image001.png
B3C4_image001.png
B5C6_image001.png

セル範囲のPNGファイル

セル範囲はどのPNGファイルが正しいのか判定できないためfilesフォルダのまま残しています。

以下のように、004が正解なのですが、正解が004であることを判別する方法が現時点で分かっていません。最終番号の1つ前の番号か?とも思ったのですが、その判別方法はちょっと危ないと思い避けています。判別できる方法はあるとは思うのですが、断念しちゃいました。というよりも、そこまで不便ではないので私はこの状態で使っています。

A1C6_image001.png
A1C6_image002.png
A1C6_image003.png
A1C6_image004.png
A1C6_image005.png