• ベストアンサー

エクセルで作成した画像を保存する方法はありますか

エクセルのA列に適当な文字列を入力して、次のマクロを実行すると、B列に、A列の文字列を画像化したものが並びますよね。 Sub gazou_sakusei() Dim bbb As Range Dim aaa As Variant ActiveWindow.DisplayGridlines = False aaa = Cells(Rows.Count, 1).End(xlUp).Address For Each bbb In Range(Cells(1, 1), aaa) With bbb .Columns.AutoFit .Rows.AutoFit .HorizontalAlignment = xlCenter .VerticalAlignment = xlCenter .CopyPicture Appearance:=xlScreen, Format:=xlPicture .Next.Select End With Selection.PasteSpecial Next bbb End Sub こうしてできた画像を画像ファイルとして保存することはできないでしょうか。 とりあえずペイントにコピペして名前をつけて保存すればできますが、大量に有ると手間が掛かる上に、なぜか画質も落ちます(エクセル上にあるものとペイントに貼り付けた状態のものを拡大して比べればその差は歴然です)。 もしもそのままの画質で保存できる方法があるならばお教えいただきたいと思います。 よろしくお願いします。

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

  • ベストアンサー
  • mitarashi
  • ベストアンサー率59% (574/965)
回答No.5

下記の様にすると、emf形式で保存できます。 (途中略) .CopyPicture Appearance:=xlScreen, Format:=xlPicture SavePicture CreatePictureFromCB(), "c:\" & bbb.Address(RowAbsolute:=False, ColumnAbsolute:=False) & ".emf" CreatePictureFromCB()はWin32APIを用いた関数(By Shiraさん)で、 http://web.archive.org/web/20040528030228/http://www2.moug.net/app/bbs/message.php?cat=exvba&id=20040504-000002 等にあります。

cs-megami
質問者

お礼

ずばりこの方法でできました。 保存パスの部分をいじると、「A列の文字列.emf」で、一度に大量に保存できて目的にぴったり合致します。 これと「iconverter」という、.emf←→.gif相互変換ソフトを使えば完璧です。 どうもありがとうございました。

その他の回答 (4)

回答No.4

次のようなアドインを利用するとメタファイル(*.wmf、*.emf)で保存でき、拡大しても ザラつきません。 PICSAV http://hp.vector.co.jp/authors/VA016119/excel/lib01.html 外部のマクロを使用したくないのでしたら、クリップアートギャラリーを利用して、次の 少々煩雑な操作をすれば可能です。(Excel2000) 1.クリップアートギャラリーを起動して適当なアイテムを開いておきます。 2.文字の入力されたセルを選択してコピーし、クリップアートギャラリーに貼り付けます。 3.クリップアートギャラリーに貼り付けられた画像を選択してコピーし、デスクトップや  適当なフォルダに貼り付けます。 これで拡張子WMFのメタファイルが作成されますので、ExcelやWord、Powerpointなどから 呼び出すと、枠線のキレイな画像が挿入されます。 なお、いずれの方法で作成した画像も、ドロー系の画像表示をサポートしていないアプリ ケーションで使用すると、縁がギザギザの画像になってしまいます。 <参考> http://www.hm.h555.net/~irom/g_about/g_dic_05.htm

cs-megami
質問者

お礼

サイトに使いたかったので、No.5さんの方法を使わせてもらいました。 ありがとうございました。

  • okdeath
  • ベストアンサー率28% (13/46)
回答No.3

こんにちわ。 たしかにコピペじゃ駄目みたいですね。(フォントは計算により滑らかさを維持しますが、画像的には100%の時のまま拡大するので、そもそもそれだけのデータしか無いってことだと思いますが・・・) 違う方法を挙げると、表示したい画面をそのまま画像にしたらどうでしょうか? 具体的には納得できる大きさに拡大してから、プリントスクリーンを押して画面全体をコピーし、ペイント(画像ソフトならなんでもよい)に貼り付け、必要な部分を切り取る。 まあ、VBAで画像にした意味は無くなりますが、これしかないんじゃないでしょうか?

cs-megami
質問者

お礼

No.5さんの方法でできました。 ありがとうございました。

  • taka108
  • ベストアンサー率44% (8/18)
回答No.2

解像度の問題は、生成した図のサイズを拡大してからコピーすると、拡大の程度に応じて改善されます。 図のエクスポートの方法は分かりませんでした。

cs-megami
質問者

お礼

No.5さんの方法でできました。 ありがとうございました。

  • hallo_haro
  • ベストアンサー率37% (1019/2690)
回答No.1

素人のアナログ的な回答で失礼します。 私も少し前に、エクセルで造った画像を文書に貼り付けて印刷したく、 いろいろやってみましたが、 画像ファイルにすると、一気に画質が落ちました。 PDFファイル化して挿入、そのままコピペで貼り付けるなど やった結果、ワードへそのままコピペが一番高画質でした。 (最初は一太郎に持っていきたかったので。) 今回作った、画像を何に使われたいのか不明ですが、 文書にして印刷でしたら、ワードへ持っていくのがよいかと思います。 他によき方法があれば、逆に教えていただきたいです・・・。

cs-megami
質問者

お礼

普通のPCにはインストールされてないような文字で綴った文章をサイトに載せようと思ったんです。 No.5さんの方法でできました。 ありがとうございました。

関連するQ&A

専門家に質問してみよう