• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Excel2002:オートシェイプ(塗りつぶし効果)の画像が印刷時に劣化する。)

Excel2002でオートシェイプの画像が印刷時に劣化する問題の回避方法はあるか

このQ&Aのポイント
  • Excel2002において、オートシェイプの「塗りつぶし効果」を使用して写真集を作成すると、印刷時に画像が劣化する問題が発生しています。
  • この問題はExcel2000では発生せず、2002で作成した写真集も問題なく印刷されます。
  • マクロを使用して手軽に写真集を作成するため、オートシェイプの「塗りつぶし効果」が重宝されていますが、Excel2002でこの問題を回避する方法はあるのでしょうか?

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

  • ベストアンサー
  • DOUGLAS_
  • ベストアンサー率74% (397/534)
回答No.3

>Excel2000と2002の共存インストールを考えています。 とのことですが、要らぬお節介な回答をさせていただきます。 >他のマクロは作れそうにありません  そう難しいことではないと存じますよ。  しかし、「写真集を作成」されるのでしたら、エクセルでなくても、プリンタ付属の写真処理ソフトで十分かと存じますが。。。 CANON)http://cweb.canon.jp/drv-upd/bj/soft.html EPSON)http://faq.epson.jp/faq/00/app/servlet/relatedqa?QID=003038 など  [ツール(T)] - [マクロ(M)] - [新しいマクロの記録(R)] で 1)セルE6 をクリックします。 2)[挿入(I)] - [図(P)] - [ファイルから(F)] 写真を挿入します。 3)写真を切り取り([Ctrl] + [X])ます。 4)[編集(E)] - [形式を選択して貼り付け(S)] - [図(拡張メタファイル)] で貼り付けます。 5)写真を右クリック [図の書式設定(I)] - [サイズ] タブ - [縦横比を固定する(A)] に チェック が入っていることを確認して、[高さ(E)] または [幅(D)] に適当な数字を入力し、[OK] します。  ここでは、例えば [幅(D)] に「9」と入力したとします。 6)これで、セルE6 に、幅9cm の「拡張メタファイル」形式の写真が張り付きました。 7)ここで、[ツール(T)] - [マクロ(M)] - [記録終了(R)] します。  これで、記録されたマクロを見ると、 Sub Macro1()  Range("E6").Select  ActiveSheet.Pictures.Insert("写真ファイルのフルパス\写真の名前.jpg").Select  Selection.Cut  ActiveSheet.PasteSpecial Format:="図 (拡張メタファイル)", Link:=False, _   DisplayAsIcon:=False  Selection.ShapeRange.LockAspectRatio = msoTrue  Selection.ShapeRange.Height = 190.5  Selection.ShapeRange.Width = 255#  Selection.ShapeRange.Rotation = 0# End Sub というようなコードになっていると存じますが、  Selection.ShapeRange.Width = 255# の部分が「幅9cm」に当たりますが、「.LockAspectRatio = msoTrue」(縦横比を固定)になっていますので、  Selection.ShapeRange.Height = 190.5 の行は不要です。  これで、元々オートシェイプを配置していたセル番地の数だけ「For ~ Next」で回していけばよいかと存じます。  元々のマクロも「For ~ Next」で回されていたと存じますが、ざっと、下記のようなコードになろうかと存じますので、あとはご要望のようなコードに書き換えてお試しください。 Sub Macro1()  Dim MyFolder As String  Dim MyFile As String  Dim i As Byte  Dim MyRng As Variant 'プルパスの最後に「\」マークを付けてください。  MyFolder = "C:\My Documents\My Pictures\hoge\" '元々オートシェイプのあったセル番地を半角スペースで区切って羅列します。  MyRng = Split("A1 G1 A12 G12 A23 G23 A34 G34 A45 G45")  For i = 0 To UBound(MyRng)   Range(MyRng(i)).Select '写真ファイルの名前になるような式を考えます(i の初期値は 0)。   MyFile = "P" & 5080011 + i   ActiveSheet.Pictures.Insert(MyFolder & MyFile & ".jpg").Select   Selection.Cut   ActiveSheet.PasteSpecial Format:="図 (拡張メタファイル)", Link:=False, _    DisplayAsIcon:=False   Selection.ShapeRange.LockAspectRatio = msoTrue   Selection.ShapeRange.Width = 255#  Next End Sub

pissun
質問者

お礼

DOUGLAS_ 様 ご回答まことにありがとうございます。 マクロのコードまでも教えていただいて... 勉強します。

その他の回答 (2)

  • DOUGLAS_
  • ベストアンサー率74% (397/534)
回答No.2

[回答番号:No.1] の DOUGLAS_ です。  ちょっと言葉足らずでしたね。 >Excel2002で、上記の症状を回避する方法はないのでしょうか?  前回答のリンク先に「回避する方法」が掲載されております。   -- これより引用 --------------------------------------------------------------- 以下の手順で画像の貼り付けを行うことで回避することができます。 1.挿入した画像を選択し [編集] メニューから [コピー] をクリックします。 2.ワークシートをクリックし、[編集] メニューから [形式を選択して貼り付け] をクリックします。 3.図(拡張メタファイル)または MS Office 描画オブジェクトを選択し、[OK] ボタンをクリックします。 -- ここまで引用 ---------------------------------------------------------------  ということで、オートシェイプの塗りつぶしではなくて、写真を直接ワークシートに貼り付け、(1)・(2)・(3) の操作の後、サイズと貼り付け位置を変更するようにマクロを書き直されればよいかと存じます。  なお、この場合、(1) の操作は >[編集] メニューから [コピー] ではなくて [切り取り] です。

pissun
質問者

お礼

DOUGLAS_ 様 再度のご回答ありがとうございます。 他のマクロは作れそうにありませんので、 Excel2000と2002の共存インストールを考えています。 http://www.asahi-net.or.jp/~ef2o-inue/kankyo/sub02_03.html

  • DOUGLAS_
  • ベストアンサー率74% (397/534)
回答No.1

>Excel2002で、上記の症状を回避する方法はないのでしょうか?  下記の症状でしたら、 >この現象は Office XP アプリケーションの仕様による動作となります。 だそうです。 ●[OFFXP]JPEG形式GIF形式の画像を挿入すると不鮮明な画像となる http://support.microsoft.com/kb/417902/ja 対象製品:Microsoft Excel 2002 Standard Edition

pissun
質問者

お礼

DOUGLAS_ 様 ご回答ありがとうございます。 2002のみにみられる現象のようですね。

関連するQ&A