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

excelにて各シートの総印刷ページ数を取得したいのですが、GET.DOCUMENT(50) 印刷総ページ数と実際のページ数に相違が生じる場合がありそうです。シートのページ設定のページでの拡大縮小印刷で、拡大/縮小(A)と次のページ数に合わせる(F)で相違がでました。何か制約があるのでしょうか。

A 回答 (1件)

>何か制約があるのでしょうか。


http://support.microsoft.com/kb/402754/ja
ここによると
>注意
>印刷範囲を指定し、[ファイル] メニューの [ページ設定] にて "横 1 ×縦 1 ページに印刷" と設定していると、
>正しい結果が取得できないことがあります。その場合、以下のいずれかの方法で回避できます。
>
>  * [ファイル] メニューの [ページ設定] から "拡大/縮小" で倍率を指定する。
>  * [ファイル] メニューの [ページ設定] から [印刷範囲] を設定しない。
などありますが、

他に、列方向の改ページがあって、行方向のページ数が違ってたりすると、
うまく取れない場合もあるようです。
その場合は以下で解消すると思うんですが。

Sub Macro1()
  Dim n As Long
  Dim p
  
  Application.ScreenUpdating = False
  With ActiveWindow
    n = .View
    .View = xlPageBreakPreview
    p = ExecuteExcel4Macro("GET.DOCUMENT(50)")
    .View = n
  End With
  Application.ScreenUpdating = True
  MsgBox CStr(p)
End Sub
    • good
    • 0
この回答へのお礼

ありがとうございます。
上記のやり方で、ページを取得できました。
他の条件もあるのかもしれませんが、うまくいかない場合も多少あるようでした。

もともとEXCELは、表計算ソフトと考えると印刷を前提とするドキュメント目的で使用する場合にはしょうがないのかもしれませんね。

本当に有り難うございます。

お礼日時:2010/04/14 20:05

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

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