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

EXCEL97です。
ブックの目次を作るマクロを作っています。
ブック内のシート名を目次のシートに縦に並べることはできたのですが、
その横にセットしたページ数をどうやって取得するか悩んでいます。
過去ログも見たのですがHPageBreaks.Countでは
プレビューでは1ページしかないはずのシートで
1が返ってきたりしてどうもうまくいきません。
良い方法があればどなたか教えてもらえないでしょうか。

A 回答 (2件)

Application.ExecuteExcel4Macro("get.document(50)")


で、印刷ページ数が取得出来ます。

http://www2.odn.ne.jp/excel/waza/print.html
    • good
    • 0
この回答へのお礼

お礼が遅くなってすみません。
教えていただいたファンクションで無事
実現することができました。
アクティブなシートでないと取得できないということが
わかるのに少々手間取りましたが(笑)
ありがとうございました!

お礼日時:2006/01/15 15:15

こんばんは。



>過去ログも見たのですがHPageBreaks.Countでは
>プレビューでは1ページしかないはずのシートで1が返ってきたりしてどうもうまくいきません。

過去ログがどんな内容かはわかりませんが、1が返ってくるなら、あっているのでは?それは、たぶん、0ではありませんか?

HPageBreaks.Count というのは、水平ページブレイクの数のことですから、最後のページには入りません。そこで、1つ足してあげなくてはなりません。

HPageBreaks.Count + 1

なお、正確には、この水平ページブレークと垂直ページブレークとがありますから、

Sub PageCount()
'ページ数を取る
Dim lngHpage As Long
Dim lngVPage As Long
Dim lngPTotal As Long
 On Error Resume Next
  '水平改ページ数 + 1
  lngHpage = ActiveSheet.HPageBreaks.Count + 1
  '垂直改ページ数 + 1
  lngVPage = ActiveSheet.VPageBreaks.Count + 1
  '総ページ数を計算
  lngPTotal = Int(lngHpage * lngVPage)
  MsgBox lngPTotal
End Sub

このようになります。ただし、改ページプレビューを使うとデータが飛んでしまうことがあります。

私も、ふだんは、Ver4 マクロ関数を使います。こちらは、直接、Applicationにアクセスして、取得していますので、若干ですが、取得時間が速いようです。
    • good
    • 0

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

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