Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


72444 / 76732 ←次へ | 前へ→

【8772】Excel2000でHpageBreakオブジェクトが取得できません。
質問  ちゃっぴ E-MAIL  - 03/10/31(金) 18:05 -

引用なし
パスワード
   印刷ページ数を取得するため、以下のマクロを作成しました。


Excel2000で特定のファイルに対し実行したところ、For Each 文のHpageBreak Objectを取得する過程でエラーが発生しました。
debugしたところ、HpageBreaks.count = 3 でしたが、HpageBreaks(3)が存在しませんでした。どうしてでしょうか?

ちなみにExcel2002では正常に取得でき、HpageBreaks.count = 2が表示されました。

どなたかわかる方、教えてください。

Public Function F_CountPages(ByVal wshWork_Sheet1 As Worksheet) As Long
  Dim lngV_PageNo As Long     '印刷範囲内の垂直改ページ数
  Dim lngH_PageNo As Long     '印刷範囲内の水平改ページ数
  Dim hpb As HPageBreak      '垂直改ページ(object)
  Dim vpb As VPageBreak      '水平改ページ(object)
  Dim strPrint_Area As String   '印刷範囲のアドレス
  
  With wshWork_Sheet1
    '「改ページ」プレビュー
    ActiveWindow.View = xlPageBreakPreview
    '印刷範囲アドレス取得
    strPrint_Area = .PageSetup.PrintArea
    If strPrint_Area = "" Then
      strPrint_Area = "A1:IV65536"
    End If
    '印刷領域の垂直改ページをカウント
    For Each vpb In .VPageBreaks
      If Not Application.Intersect(vpb.Location, .Range(strPrint_Area)) _
        Is Nothing Then
        lngV_PageNo = lngV_PageNo + 1
      End If
    Next vpb
    '印刷領域の水平改ページをカウント
    For Each hpb In .HPageBreaks
      If Not Application.Intersect(hpb.Location, .Range(strPrint_Area)) _
        Is Nothing Then
        lngH_PageNo = lngH_PageNo + 1
      End If
    Next hpb
    With .PageSetup
      '拡大縮小印刷の場合
      If CBool(.Zoom) = True Then
        lngV_PageNo = lngV_PageNo + 1
        lngH_PageNo = lngH_PageNo + 1
      '枚数指定印刷の場合
      Else
        lngV_PageNo = IIf(Not .FitToPagesWide = False, _
          .FitToPagesWide, lngV_PageNo + 1)
        lngH_PageNo = IIf(Not .FitToPagesTall = False, _
          .FitToPagesTall, lngH_PageNo + 1)
      End If
    End With
    '印刷枚数取得
    F_CountPages = lngV_PageNo * lngH_PageNo
    '「標準」ビュー
    ActiveWindow.View = xlNormalView
  End With
End Function
3 hits

【8772】Excel2000でHpageBreakオブジェクトが取得できません。 ちゃっぴ 03/10/31(金) 18:05 質問
【8773】Re:Excel2000でHpageBreakオブジェクトが取... ちゃっぴ 03/10/31(金) 18:34 質問
【8774】Re:Excel2000でHpageBreakオブジェクトが取... INA 03/10/31(金) 20:29 回答
【8775】正常に取得できました。 ちゃっぴ 03/10/31(金) 21:36 お礼
【8777】Re:正常に取得できました。 りん 03/11/1(土) 13:33 発言
【8780】Re:正常に取得できました。 ちゃっぴ 03/11/2(日) 14:31 発言
【8815】Re:正常に取得できました。 りん 03/11/4(火) 1:56 発言

72444 / 76732 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free