【初月無料キャンペーン中】gooドクター

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

というようなマクロを作って実行すると
プレビュー画面が出るまでに
かなり時間がかかるのです。
職場のパソコンであるため
パソコンそのものがかなり古いのですが
マクロを使わずに直接、印刷の設定をすれば
すぐにプレビューが表示されます。
ただ、同じシートをいろいろな方法で印刷する必要があるため
マクロを組んでみたわけです。

ちょっと我慢すればいいだけで
仕事そのものに大きく影響するわけではありませんが
皆様のご助言をよろしくお願いいたします。

gooドクター

A 回答 (4件)

> マクロで印刷の設定をすると


> 遅くなるのでしょうか?

わたしのエクセル2000でも同様に、VBAで印刷のページ設定を行うと非常に遅いです。
ページ設定のコードの前後を、

Application.ScreenUpdating = False と、

Application.ScreenUpdating = True ではさんで画面更新を止めても多少かわる程度かな。

何パターンかページ設定した複数の「雛形」シートを用意しておいて、印刷したいデータだけ、「雛型」に貼り付けするって方法はどうでしょうか?

この回答への補足

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

補足日時:2008/11/27 21:28
    • good
    • 0
この回答へのお礼

Application.ScreenUpdating = False

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

お礼日時:2008/11/27 21:27

>残念ながらZoomを消しても


>遅いことには変わりありませんでした。

これ以上は、解決策は思い当たりません。もしかしたら、プリンタの共有などではないでしょうか。そうすると、あまり期待した効果は出ませんね。

この回答への補足

かなり遅れてしまいました。
申し訳ありません。
まさにおっしゃるとおり
プリンタは共有になっております。

ということで
これからは
よく使う印刷形式を登録しておき
それ以外の印刷形式は
遅くなることを覚悟の上で
マクロに任せることにします。

補足日時:2008/12/12 07:49
    • good
    • 1

こんばんは。



>やはり遅いままでした。
>データが多すぎたためでしょうか。

これを見てて、思い出したことですが、VBAコードで、ページ設定側に Zoom が入っていますね。VBAコードから、Zoom をいじるのは、避けたほうがよいです。

あれは、一旦、設定されていたものを、全部、自動改ページなどの位置を再計算し設定し直すものなのです。Zoomさえなければ、速くなるのではないかと思います。最初から、設定しておくとか出来ませんか。

Ver.4 マクロ関数自体は、昔から言われていたことですから、間違いありません。

この回答への補足

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

補足日時:2008/12/02 21:33
    • good
    • 0

こんばんは。



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(ヘッダー, フッター, 左余白, 右余白, 上余白, 下余白, 行列番号印刷, 枠線印刷, 中央 (水平), 中央 (垂直), 用紙方向, 用紙サイズ, 拡大縮小, ページ番号, 印刷方向, 白黒印刷, 印刷品質, ヘッダー余白, フッター余白, メモ, 簡易印刷)

この回答への補足

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

補足日時:2008/11/29 22:23
    • good
    • 0
この回答へのお礼

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

お礼日時:2008/11/28 08:01

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

gooドクター

このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング