[[20060613112149]] 『任意ページの印刷プレビューの方法』(マキ) ページの最後に飛ぶ

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

 

『任意ページの印刷プレビューの方法』(マキ)

 Excelで、例えば 10ページ目とかを修正して
 印刷プレビューで見ると、TOPページの1ページ目から
 始まりますよね。

 そうすると、10ページ目までいちいち送らなくては
 いけないので
 何か、よい方法はありますか?

 ExcelというよりWindows の疑問?なのかも
 しれませんが
 お知恵頂ければ幸いです。
 宜しくお願いします。

 Excel2003,XP

 こちらが参考になれば・・・(ぷーのすけ)
          ↓
[[20040907162701]]
『プレビューの際・・』(Mr.) 

 ぷーのすけさま、ありがとうございます。

 ご案内の過去ログ、拝見致しました。
 ただ、私にはスキル不足で自分では、出来無そうなのですが・・・

 それで、ご案内頂いたところの疑問点を質問させて頂きますので
 教えて頂けます方がいらっしゃれば幸いです。

 >その行が何ページ目かを表示しておく列を印刷範囲外に作って、
 >表示したいページ数でフィルタをかけてからプレビューするとか。
 >印刷行数がページあたり一定のものであれば、関数で簡単に作れます。

 今のファイルは、最後の行に書いてある通り
 1ページの行数が同じなので <25行で、1ページ設定が、何枚も続く
 関数やVBA(そこまで必要ない?)で、出来ればいいかなと
 思いますが、何か良い方法があれば
 教えて下さい。
 お願いします。


KAMIYAさんのアイデアをいただくと・・・

   A  D(印刷範囲外) 

 1	1←ページ数
 2	1
 3	1
 ・	1
 ・	1
 ・	1
 25	1
 26	2
 27	2
 ・	2
 ・	2
 ・	2
 50	2

 このようにページ数を振っておいて、修正したページでオートフィルターをかければ
 任意のページでプレビュー可能です。
 (ぷーのすけ)


 ぷーのすけさま、早速やってみようと思ったのですが

 26	2
 27	2
 ・	2
 ・	2
 ・	2
 50	2

 ↑このようにしたのですが(印刷範囲外)

 Webサイト(ここも勿論)だと
 上のバーに ページ数が指定できるところがありますが
 私の環境のExcelだと、→こんな感じ→ 1 /全体ページ数
 の表示がバーに出ません。
 何か、設定でそれが出るのでしょうか?
 宜しくお願いします。

 済みません、おっしゃってることがよく分からないのですが・・・

 (1行目が見出しだと仮定して)
 1行目を選択して[データ]メニューの[フィルタ]−[オートフィルタ]
    ↓
 D列の▼をクリックしてプレビューさせたいページ数を指定
    ↓
 プレビュー
 
 では出来ませんか?                 (ぷーのすけ)

 横からすみません。
 私もこの質問にのっている事項をやりたいと思ったのですが
 ページ番号の列は 手でページ番号をいれていくしかないでしょうか。
 間に行が追加されることが頻繁にあるので、
 できれば関数かなにかでページ番号を取れたらいいなと思っているのですが。
 (ダイア)

 「25行で1ページ」と言うことなら
 =ROUNDUP(ROW()/25,0)
                ~~
 こんなのでページ数が表示出来ると思います。

 (HANA)

 1行の高さがまちまちなので、
 単純に何行が何ページと決められないのですが
 そうなると自動でやるのはきびしいでしょうか、、 (ダイア)


 >上のバーに ページ数が指定できるところがありますが
 >私の環境のExcelだと、→こんな感じ→ 1 /全体ページ数
 >の表示がバーに出ません。
 エクセルの印刷プレビューだと、左下にあると思いますがありませんか?

 >1行の高さがまちまちなので
 と言うことなら、難しいと思います。
 たとえば(今回ページ行)25行全てを選んで番号を入れる点でも
 簡単にやる方法があれば と言うのであれば
 上の数字を参照して(=A1の様な式を入れておいて)、先頭ページ行に
 なる場合にはその関数を消して
 上から数字を入れる・・・・くらいですかね。

 (HANA)

 そうですか。やはりきびしいのですね。。
 (HANA)さんありがとうございました。 (ダイア)


 ご質問が、このようなことかも知れないと思いまして、書いてみます。 (LOOKUP)
 ページ数を指定して印刷プレビューを表示させるつもりのものです。

 最終ページを表示させるものは、
     L_PAGE = InputBox("ページ数")の代わりに
     'L_PAGE = Application.ExecuteExcel4Macro("GET.DOCUMENT(50)")です。

 Sub Macro1()
 Dim L_PAGE As Long
     L_PAGE = InputBox("ページ数")
     'L_PAGE = Application.ExecuteExcel4Macro("GET.DOCUMENT(50)")
     ActiveWindow.SelectedSheets.PrintOut From:=L_PAGE, To:=L_PAGE, Copies:=1, _
     Preview:=True, Collate:=True
 End Sub

 該当セルが何ページ目かを調べるユーザー定義関数を作ってみました。
使い方は以下のコードを標準モジュールに貼り付け。
=PageNum(番地)といった塩梅で確定してやります。
(ROUGE)
'----
 Function PageNum(adrs As Range) As Long

 Application.Volatile

 Dim tH_b As Long, tV_b As Long, i As Long
 Dim WS As Worksheet

 Set WS = Worksheets(adrs.Worksheet.Name)

 tH_b = WS.HPageBreaks.Count
 tV_b = WS.VPageBreaks.Count

 PageNum = 1

 If WS.PageSetup.Order = xlDownThenOver Then
    For i = 1 To tH_b
        If WS.HPageBreaks(i).Location.Row < adrs.Row + 1 Then _
            PageNum = PageNum + 1
    Next
    For i = 1 To tV_b
        If WS.VPageBreaks(i).Location.Column < adrs.Column + 1 Then _
            PageNum = PageNum + tH_b + 1
    Next
 ElseIf WS.PageSetup.Order = xlOverThenDown Then
    For i = 1 To tV_b
        If WS.VPageBreaks(i).Location.Column < adrs.Column + 1 Then _
            PageNum = PageNum + 1
    Next
    For i = 1 To tH_b
        If WS.HPageBreaks(i).Location.Row < adrs.Row + 1 Then _
            PageNum = PageNum + tV_b + 1
    Next
 End If

 End Function

HANAさま、ありがとうございました。

 >エクセルの印刷プレビューだと、左下にあると思いますがありませんか?
 こちらの件、分かりました。

 ダイアさん、上手くゆくといいですね(^^

 >それで、ぷーのすけさまからのご教授の
 >(1行目が見出しだと仮定して)
 >1行目を選択して[データ]メニューの[フィルタ]−[オートフィルタ]
    ↓
 >D列の▼をクリックしてプレビューさせたいページ数を指定
    ↓
 >プレビュー

 D列の▼をクリックして・・・
 そこまでは、わかったのですが
 そして、例えば2ページ目を選んでも
 プレビューからだと1ページ目からの表示です(;>_<;) 
 やり方が悪いのでしょうか?
 行の数字の文字の部分は選択したところだけ青色になっているので
 2ページ目選択の意味では、成立してると思います。

 何度もすみません。

 これを書いている間に
 LOOKUPさま、ありがとうございます。
 今、少々時間ないので
 後で、じっくり試します!!
 ありがとうございました。

 >プレビューからだと1ページ目からの表示です(;>_<;) 

 もしや左下のページ表示が1/1ということをおっしゃってますか?
 オートフィルターをかけた結果「1ページ」しか表示されないので
 「任意のページ/総ページ数」という表示は出ません。(はずしまくり?)

 うみゅみゅ、読解力も解説力もない(ぷーのすけ)


 マクロの提示等みなさまいろいろありがとうございます。
 できればページ番号を入力するスタイルではなくて、
 今セル選択している部分を含んだページを
 プレビューするというのはできますでしょうか。
 (ダイア)

 (ダイア)さん
 こんなのはどうですか?[(ROUGE)さんと(LOOKUP)さんのを組合わせただけなのですが、、]
 Sub Macro1()
 Dim L_PAGE As Long
 '     L_PAGE = InputBox("ページ数")
     'L_PAGE = Application.ExecuteExcel4Macro("GET.DOCUMENT(50)")
     L_PAGE = PageNum(Selection)
     ActiveWindow.SelectedSheets.PrintOut From:=L_PAGE, To:=L_PAGE, Copies:=1, _
     Preview:=True, Collate:=True
 End Sub

Function PageNum(adrs As Range) As Long

 Application.Volatile

 Dim tH_b As Long, tV_b As Long, i As Long
 Dim WS As Worksheet

 Set WS = Worksheets(adrs.Worksheet.Name)

 tH_b = WS.HPageBreaks.Count
 tV_b = WS.VPageBreaks.Count

 PageNum = 1

 If WS.PageSetup.Order = xlDownThenOver Then
    For i = 1 To tH_b
        If WS.HPageBreaks(i).Location.Row < adrs.Row + 1 Then _
            PageNum = PageNum + 1
    Next
    For i = 1 To tV_b
        If WS.VPageBreaks(i).Location.Column < adrs.Column + 1 Then _
            PageNum = PageNum + tH_b + 1
    Next
 ElseIf WS.PageSetup.Order = xlOverThenDown Then
    For i = 1 To tV_b
        If WS.VPageBreaks(i).Location.Column < adrs.Column + 1 Then _
            PageNum = PageNum + 1
    Next
    For i = 1 To tH_b
        If WS.HPageBreaks(i).Location.Row < adrs.Row + 1 Then _
            PageNum = PageNum + tV_b + 1
    Next
 End If

 End Function
 (たたみ)

 (たたみ)さん。できました♭
 皆様本当にありがとうございました。これでだいぶ
 作業が楽になります。(^^ゞ  (ダイア)

コメント返信:

[ 一覧(最新更新順) ]


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