• ベストアンサー

VBAでのjpg保存

エクセルのある範囲のセルを図に変換し、jpg保存する方法を探しています。 グラフであればEXPORTメソッドで書き出せますが、図の場合うまくいきません。 数千シートあるデータをjpgにする必要があるのですが、図はEXPORTできないのでしょうか。 jpg、gif、pngであれば構いません。 処理時間を考慮し、できるだけ簡単な構文での作成方法のご教授をお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.1

>できるだけ簡単 仮想化プリンタをインストールしておき,所定の範囲を次々印刷していくだけで画像として保存されるよう仕込んでしまうのが一番簡単と思います。 http://gigazine.net/news/20071107_virtual_image_printer_driver/ 「仮想プリンタ」でぐぐってみると多数ヒットします。 #別の方法 「印刷用」シートに 所定のセル範囲.copy 印刷用シート.pictures.paste のようにして「図として貼り付け」を行って必要な画像を集めた後,名前を付けて保存でWEB形式で保存してやると,貼り付けた画像をまとめて取り出せます。

toshi09
質問者

お礼

まだ試していませんが、たぶん事足ります。 「仮想プリンタ」の検索が思いつかなかった・・・ PDF化のマクロを改造して作成します。

その他の回答 (1)

  • imogasi
  • ベストアンサー率27% (4737/17070)
回答No.2

エクセルや関連のことを勉強してないのに、したいこと、だけがイメージで空回りしていませんか。エクセルは質問のようなことに適した(目指したソフト)ではない。 ーー セル範囲を画像も含めてファイル化して保存する、エクセルVBAのメソッドはないと思う。 他のソフト(ペイントのような)の助けを借りないといけないが、VBAでの連動は難しい。ペイントに相当するソフトでCOM化されたソフトが無いため。 また付近のセルのマス目部分の画像は第2次的で、のぞいて、画像そのものだけに興味(目的)がある場合に、 以下は参考までに。 >のある範囲のセルを図に変換し そもそもエクセルに挿入した図(写真などは)「セルの値」ではない。見てくれで、そのセルの位置(の近く)に見えているだけ 。レイヤーが違うというか。 普通はエクセルは歴史沿革的に、「セルの値」を主処理対象にしてきた。VBAも主流は其れで、それを外れると、途端に 勉強が難しくなる。 勉強テーマとして (1)セルを指定して(セルが決ったとき)画像ファイル名を割り出す(というか、オブジェクトをとらえる)方法はあるか。 図の「書式設定ープロパティにそれらしき事項があるが、全体的なことを指定するもののようである。 図のトップ位置とセルのトップ位置などを頼りにせざるを得ない不確定なものではないか。 (2)さらに図形オブジェクトをとらえたとして、その元になる画像ファイル名を割り出せるか たまに質問が出るが、その回答の私の受け取り方では、明確な回答は出ていないと思っている。 WEBに移してとソースを見ればとかいう回答はある。 多分とりあえずVBAレベル(APIやレジストリなどを扱わない範囲)では不可能なのではないか。 どこかに挿入した画像のファイル名が、エクセルにあると素人的には思うが、言われた画像を読み込むだけで、ファイル名はエクセルファイルに、後に残さないやり方もありえるので、後者ではないか。画像化したものはもちろん覚えているから、ファイルを後日開くと、画像がでてくるが、それとは別にファイル名(フルパス名)を保存しているかどうかのこと。そしてVBAでファイル名(多分コレクションになっているべき)が取り出されるか。いままで見つけられなかった。 ーー 私もわからない部分のあることなので、後続の回答を待ちたい。

toshi09
質問者

補足

回答でもないのにダラダラと長文を並べられても不快です。 ちなみにビットマップへの書き出しは本にも載っています。 その方法でjpeg化もできるけど、データサイズが大きいので 使えないだけ。

関連するQ&A