アプリ版:「スタンプのみでお礼する」機能のリリースについて

用紙サイズやマージンを指定して、1ページに最大倍率で印刷する方法はないでしょうか?(自動的に)

以前「QNo.2677602 ExcelVBA、印刷ページを事前に知るには 」で教えていただいた
i = Application.ExecuteExcel4Macro("GET.DOCUMENT(50)")
を利用して次の動作をするVBAマクロを作りました。
PageSetupでZoomに100を指定し、1ページに収まるかどうか調べる。
1ページ内の時は1ページを越えるまでZoomを+1し越えたら-1する。
1ページ以上の時は1ページになるまでZoomを-1する。

これで上手くいくと思ったら、動くことは動くのですが、結果は大き過ぎたり小さすぎたりして、後で手作業で調整しなければなりません。
実行速度も非常に遅いです。
うまくやる方法はないものでしょうか?
よろしくお願い申し上げます。

A 回答 (2件)

複数ページを1ページに印刷(限定ですが)するなら


「ページ設定」で「次のページ数に合わせて印刷」を
「横 1 X 縦 1」にして印刷するを
「新しいマクロの記録」でコードを取得できると思います。

参考になればよいのですが。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
.FitToPagesWide = 1
.FitToPagesTall = 1
を指定してトライしたこともありますが、上手くいかなかったと思います。

お礼日時:2007/01/27 10:17

こんにちは。

Wendy02です。

>これで上手くいくと思ったら、動くことは動くのですが、結果は大き過ぎたり小さすぎたりして、後で手作業で調整しなければなりません。

やってみる前から言うのは申し訳ないのですが、確か、ページ数取得とページの拡縮とは、同じマクロの中では、二つは同時に成り立たなかったと思います。私が、マクロ関数を使った理由は、通常のVBA(以下のURLの中にあるもの)ですと、ブレやすいので使ったのですが、しかし、いずれにしても両方は無理だったはずです。

Zoom率を計算で割り出して、拡縮側で、一回で決めないと出来ないような気がします。しかし、縮小による視覚的な問題と、印刷ページにするときの丸め誤差が発生するので、マイナスは良いにしても、プラスではみ出てしまうのは防げないような気がしているのです。

以前、同じ質問を受けたことがありますが、そのとき、初めて、その問題に気がつきました。偶然の産物で出来る可能性がないとは言わないけれども、believe_me さんが、試行錯誤するプログラムに対しての協力は惜しまないけれども、私のレベルでは、回答として載せるレベルのものではありません。こちらは、無理だと思ってやるだけの気持ちがありません。ひとつだけ提案としては、印刷した後の実測値を用いることですね。私は、ここらがExcel独自の難しさなんだろうと思います。

以下、このような文面が乗っています。
「逆も真なり」なのです。

http://support.microsoft.com/default.aspx?scid=k …
[XL2002] 印刷されるページの総数を調べる方法

≪このプロシージャを実行する前に、改ページ位置のセルを画面に表示して、改ページ位置を認識させる必要があります。次のいずれかの操作を 1 度実行します。

・改ページされているセルを画面に表示
・ZOOM で縮小したあと元に戻す
・印刷プレビューを実行する ≫
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
ちょっと無理なお願いをしてしまったようです。
用途としては設計文書をエクセルで作っており、各シート毎に各1ページの異なったフォームになっています。
常に印刷前に調整しなければならず、簡素化しようとしていました。
全て自動化するのは無理なようですので、全シートのプレビューを出すなどの半自動でやろうと考えています。

お礼日時:2007/01/28 00:34

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