Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
  • ベストアンサー

Excelのマクロで印刷設定をすると遅くなる

Excelのマクロについて 久しぶりに質問させていただきます。 マクロで印刷の設定をすると 遅くなるのでしょうか? Range("A1:Z10").Select With ActiveSheet.PageSetup  .Orientation = xlLandscape  .Zoom = False  .FitToPagesWide = 1  .FitToPagesTall = 1  .TopMargin = Application.CentimetersToPoints(1)  .BottomMargin = Application.CentimetersToPoints(1)  .LeftMargin = Application.CentimetersToPoints(1)  .RightMargin = Application.CentimetersToPoints(1) End With Selection.PrintPreview というようなマクロを作って実行すると プレビュー画面が出るまでに かなり時間がかかるのです。 職場のパソコンであるため パソコンそのものがかなり古いのですが マクロを使わずに直接、印刷の設定をすれば すぐにプレビューが表示されます。 ただ、同じシートをいろいろな方法で印刷する必要があるため マクロを組んでみたわけです。 ちょっと我慢すればいいだけで 仕事そのものに大きく影響するわけではありませんが 皆様のご助言をよろしくお願いいたします。

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

  • ベストアンサー
  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.1

> マクロで印刷の設定をすると > 遅くなるのでしょうか? わたしのエクセル2000でも同様に、VBAで印刷のページ設定を行うと非常に遅いです。 ページ設定のコードの前後を、 Application.ScreenUpdating = False と、 Application.ScreenUpdating = True ではさんで画面更新を止めても多少かわる程度かな。 何パターンかページ設定した複数の「雛形」シートを用意しておいて、印刷したいデータだけ、「雛型」に貼り付けするって方法はどうでしょうか?

niftynejp
質問者

お礼

Application.ScreenUpdating = False と Application.ScreenUpdating = True で、はさんでみたところ 確かに早くなりました。 ありがとうございました!

niftynejp
質問者

補足

申し訳ありませんが 「雛形」シートの件を 詳しく教えていただけますか?

すると、全ての回答が全文表示されます。

その他の回答 (3)

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.4

>残念ながらZoomを消しても >遅いことには変わりありませんでした。 これ以上は、解決策は思い当たりません。もしかしたら、プリンタの共有などではないでしょうか。そうすると、あまり期待した効果は出ませんね。

niftynejp
質問者

補足

かなり遅れてしまいました。 申し訳ありません。 まさにおっしゃるとおり プリンタは共有になっております。 ということで これからは よく使う印刷形式を登録しておき それ以外の印刷形式は 遅くなることを覚悟の上で マクロに任せることにします。

すると、全ての回答が全文表示されます。
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.3

こんばんは。 >やはり遅いままでした。 >データが多すぎたためでしょうか。 これを見てて、思い出したことですが、VBAコードで、ページ設定側に Zoom が入っていますね。VBAコードから、Zoom をいじるのは、避けたほうがよいです。 あれは、一旦、設定されていたものを、全部、自動改ページなどの位置を再計算し設定し直すものなのです。Zoomさえなければ、速くなるのではないかと思います。最初から、設定しておくとか出来ませんか。 Ver.4 マクロ関数自体は、昔から言われていたことですから、間違いありません。

niftynejp
質問者

補足

お答え、ありがとうございます。 家のパソコンではよく分からなかったため 職場のパソコンで確認してみましたが 残念ながらZoomを消しても 遅いことには変わりありませんでした。 やはり印刷の設定には マクロは似合わないということなのでしょうね。

すると、全ての回答が全文表示されます。
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

こんばんは。 Excelのバージョンは何をお使いなのでしょうか? Excel 2003 までなら、以下のようなコードが生きています。 VBAは、直接、印刷設定が出来るのではありませんから、インターフェイスで変換しているので遅くなります。Ver.4 マクロ関数のほうが速いです。ただ、Excel2003ですと、Ver.4 マクロ関数があるというメッセージが出ます。不必要な場合は、レジストリの変更が必要です。 Sub PrintTest()  ActiveSheet.PageSetup.PrintArea = Range("A1:Z10").Address  Application.ExecuteExcel4Macro ( _  "PAGE.SETUP(,,1,1,1,1,,,,,2,, True,,,,,,,,)")  ActiveSheet.PrintPreview End Sub 設定内容: PAGE.SETUP(ヘッダー, フッター, 左余白, 右余白, 上余白, 下余白, 行列番号印刷, 枠線印刷, 中央 (水平), 中央 (垂直), 用紙方向, 用紙サイズ, 拡大縮小, ページ番号, 印刷方向, 白黒印刷, 印刷品質, ヘッダー余白, フッター余白, メモ, 簡易印刷)

niftynejp
質問者

お礼

詳しいご回答、 本当にありがとうございました。 自宅でテストしてみたところ プレビュー画面が あっという間に表示されました。 今日、職場でもやってみます。 また何かありましたら よろしくお願いいたします!

niftynejp
質問者

補足

ごめんなさい。 下に書いたように職場でやってみましたが やはり遅いままでした。 データが多すぎたためでしょうか。

すると、全ての回答が全文表示されます。

関連するQ&A