[[20210823225729]] 『改ページの印刷範囲を取得する』(フォーキー) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『改ページの印刷範囲を取得する』(フォーキー)

お世話になります。

改ページで設定している印刷範囲を超えていることを取得する方法を
探しています。

右方向(列)が増加するデータなので横方向に複数ページになること
はあるのですが、最下行が印刷範囲を超えているかを判別したいです。

事前に印刷範囲を超えないように設定しているのですが、文字数やプ
リンターの種類によって下方向にはみ出すことがあります。

ネットで検索してもそれらしい方法はなかったので無理なのかもしれ
ませんが、方法があればお願いします。

 現在はデータ加工→印刷
 でやってますが、データ加工と印刷の間に印刷範囲チェックを入れて下方向にはみ出ていないかの判定を追加したいと思っています。

 もしかしたらデータ加工→プレビュー画面を開いて範囲を確認させる→印刷 のほうがスマートかもしれません……。

 例:A1からA27までを1ページとして範囲設定してるが、プリンターの種類等で27行目から2ページになる。

    A
 1 データ
 2 データ
 3 データ
 4 データ
 5 データ
 6 データ
 7 データ
   ・
   ・
   ・
   ・
   ・
 26 データ ←ここまで1ページ
 27 データ ←ここから2ページ目

< 使用 Excel:Excel2016、使用 OS:Windows10 >


こんなふうにして改ページの位置をしらべたらどうでしょう
 Sub sample()
   Dim CurrentView As XlWindowView
   Dim pb As HPageBreak
   CurrentView = ActiveWindow.View

   ActiveWindow.View = xlPageBreakPreview
   For Each pb In ActiveSheet.HPageBreaks
       Debug.Print pb.Location.Address
   Next
   ActiveWindow.View = CurrentView
 End Sub

(とおりすがり) 2021/08/24(火) 06:30


とおりすがりさん、ありがとうございます。
改ページの位置(行)が表示されました。
ちょっと見たことない型ばっかりでまだよく理解できてませんが、研究してみます。
ありがとうございました。
(フォーキー) 2021/08/24(火) 06:41

すみません、コードについて質問です。

シートを指定してViewプロパティを使用したいのですが、

 >ActiveWindow.View

ActiveWindow以外の書き方がわかりません。

それとも操作したいシートに移動して、アクティブにするしかないのでしょうか。
追加で申し訳ないですが、よろしくお願いします。
(フォーキー) 2021/08/24(火) 07:18


WorkSheetにはWindowsプロパティがありません。 ApplicationかWorkBookのプロパティです。
それとも操作したいシートに移動して、アクティブにするしかないのでしょうか。 そう思います。

もしページ数だけわかればいいなら

 MsgBox "印刷ページは" & ActiveSheet.PageSetup.Pages.Count & " ページです。"

という方法もあります。
(とおりすがり) 2021/08/24(火) 09:23


シートをアクティブにしてやってみます。
ありがとうございました。
(フォーキー) 2021/08/24(火) 09:41

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.