プロが教えるわが家の防犯対策術!

お世話になります。
ExcelVBAで、横の幅をいっぱいにとったときの拡大率を取得しようとしていますが、うまくいかず困っております。
With Worksheets(1).PageSetup
.Zoom = False
.FitToPagesWide = 1
.FitToPagesTall = 1000
End With
で横1ページに合わせて印刷できる設定になりますが、このときの拡大率(Zoom)を変数に代入することができません。どなたか、お助けいただけないでしょうか。
どうか、よろしくお願いいたします。

A 回答 (1件)

こんにちは。



(2005年5月くらいのwww2.moug.net過去ログ情報から)
Sub try()
  '自動設定{横:1,縦:無指定}
  ExecuteExcel4Macro "Page.Setup(,,,,,,,,,,,,{1,#N/A})"
  'zoom設定{横:無指定,縦:無指定}
  ExecuteExcel4Macro "Page.Setup(,,,,,,,,,,,,{#N/A,#N/A})"
  'zoom取得
  MsgBox ExecuteExcel4Macro("Get.Document(62)")
End Sub

Excel4.0マクロ関数を実行する、[ExecuteExcel4Macro メソッド]を使った例です。
これでないと取れないと思います。
ActiveSheet限定ですが、PageSetupはVBAより高速です。

(参考)Excel4.0マクロ関数のヘルプファイルは下記より。
http://support.microsoft.com/kb/128185/ja
    • good
    • 0
この回答へのお礼

pauNed 様
ありがとうございます!
すごいです! こんな方法があるんですね。
感動しました!

ある本では、sendkeysで倍率を表示する方法がのっていたのですが、バージョンによる汎用性がないような気がしました。
私は、印刷可能範囲とデータのサイズをグチャグチャと計算して、割り算でもする方法があるのかと思っていました。

お礼日時:2008/02/10 00:40

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