[[20251026015437]] 『印刷プレビュー』(ドラゴンズ) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) |

| 全文検索 | 過去ログ ]

 

『印刷プレビュー』(ドラゴンズ)

マクロの印刷プレビューについて

A1セルにマスタNo.として1から50まで連続で入力するマクロを組んである
B2C2他のセルにはそのマスタNo.を変更するにともなって出力結果が変わるようにvlookupが入力してある
印刷プレビューのマクロと同時に実行すると入力された50に対応したものしか出力されない

どうやれば印刷プレビューで1ページから50ページがスクロールなどで連続で見られるようになるか

< 使用 Excel:Excel2019、使用 OS:Windows11 >


 どのようなコードで実行していますか?
(はてな) 2025/10/26(日) 03:03:15

 複数回再計算させたシートを、1度のPrintPreview で1シートのようにまとめて閲覧するようなことは
 そもそもできない仕様になっているかと思います。考えられる対処法は下記です。

 1. A1セルへの入力をループしながら再計算を走らせる
 2. シートを1シートに値と書式のみでコピペしていき縦に統合
 (必要であれば印刷範囲の調整)
 3. ループが終わった後に統合後のシートをPrintPreview
 4. BeforeCloseまたは次回のOpenで統合用シートを初期化

 logディレクトリでも作っておいて処理日時でログを残しておいても良いかもですね。

 ※もし要望通りの処理ができるのであれば私の知識不足です。申し訳ない。
(Asa) 2025/10/26(日) 04:02:46

>どうやれば
連続入力マクロを先に実行してから印刷プレビューマクロを実行するのが基本。
同時に実行は出来ないと思うけど。

(実行の問題) 2025/10/26(日) 09:09:10


コードが提示されていないので当てずっぽうになりますが、↓のようになっているのではないでしょうか?
 A1セルにループ処理で1から50を入力
 印刷プレビュー

上記のようであれば、そりゃ当然50を代入してから、印刷プレビューに進むのですからエクセル君は、命令どおり正しく処理してますね。

そうでなく、ループ処理のなかに印刷プレビューを組み込んでいるなら、50個のウィンドウが開いたんじゃないかとおもいます。(試してないので、ちょっと自信なし)

いずれにせよ、お望みのように1回のプレビューで、1から50まですべてを対象にするには既にコメントがあるように、どこかに1から50まですべての情報を集めておく必要があるとおもいます。

こちらも試してないですが、既に提案があった方法のほか、新規ブックを作成しそちらにシートごとコピー挿入し、最後にブック全体を対象に印刷プレビューするなどの方法も思い付くところですので、試されては如何でしょうか?

(もこな2 ) 2025/10/27(月) 09:22:31


PDFで出力してみて、そこで画面で確認してから、印刷してみてはいかがでしょうか?

>>VBAでPDFを結合する方法・汎用性の高いツールにする方法を解説!
https://www.sejuku.net/blog/99158
(まっつわん) 2025/10/30(木) 11:09:29


 既に適切な回答がありましたので、もう解決したのかもしれませんが、
 こんな観点もあるものと思います。遅ればせで恐縮ですが、メモしておきます。

 これは、いわゆる"カード型データベース"的な手法ですね。
  ・マスタNoを指定するだけで、それに見合うデータを1画面全体に表示できる。
  ・別のデータを表示するには、マスタNoを変更するだけで、結果はそれに応じて追随して変更される
 という特徴があります。

 質問者さんが、
 >どうやれば印刷プレビューで1ページから50ページがスクロールなどで連続で見られるようになるか
 と書かれていますが、その趣旨が余りしっくりきていません。
 "印刷プレビュー"というのは、普通は、印刷したときのレイアウトなどを確認するためのものですよね。
 2,3個のものをテストするだけで十分ですよね。
 50個のデータ全体を表示するのは、何が目的なんでしょうか。

 (1)
  目視で、なにかを探そうとしているのでしょうか。
  そういう目的なら、"カード型データベース"風のものは不要で、
  むしろ、全項目を一覧できるテーブル形式の表示を利用するべきです。現在よりもよほどコンパクトな情報になります。
  (検索目的なら、既に別の形式の表が備わっていませんか?)

 (2)
  もしくは50個の拠点のうち特定の拠点の成績のようなものを見たいというなら、
  "拠点"と"マスタNo"の一覧表を持っておいて、それで調べた"マスタNo"を指定するだけです。

 (3)
 どうしても現在の"カード型データベース"風表示だけでなんとかしたいというなら、こんな方法があります。

 スピンボタンをA1セルに紐付けて、スピンボタンを(上下に)押すことで、
 マスタNoをインクリメントやデクリメントできます。(ただし、1番から40番にジャンプしたいなら、直接40とA1に入力します)
 こうすれば、シートそのものが順次変わるので、
 「1ページから50ページがスクロールなどで連続で見られる」と同等の効果が得られませんか?

(xyz) 2025/10/30(木) 13:54:38


マクロでやらなくても普通に印刷プレビューで実行しらどうよ。
(実行の問題) 2025/10/30(木) 15:34:57


 実行の問題さんにお尋ねします。
 >普通に印刷プレビューで実行しらどうよ。
 印刷プレビューを実行する際に、シートにはどんなデータがあるという前提でしょうか?
 50個のデータがすべてそろっているのですか?
 それとも別の状態ですか?

(xyz) 2025/10/30(木) 17:12:14


 Wordの差し込み印刷を使えばよいと思います。
 出力シートをWordで作り直す必要がありますが。
(マナ) 2025/10/30(木) 19:19:58

皆様ありがとうございました
印刷プレビューをたくさん見ても仕方ないので
印刷マスタナンバーを打って数枚プレビューの確認することで解決します。
(ドラゴンズ) 2025/10/30(木) 19:57:56

やっとトピ主の反応があったかとおもったら、よくわからない結論になっていて残念です。
こちらでは↓のようなコードを想定していました。
    Sub 研究用()
        Dim i As Long
        Dim wb As Workbook

        With ThisWorkbook.Worksheets(1)
            For i = 1 To 50
                .Range("A1").Value = i
                If wb Is Nothing Then
                    .Copy
                    Set wb = Workbooks(Workbooks.Count)
                Else
                    .Copy after:=wb.Worksheets(wb.Worksheets.Count)
                End If
            Next i
        End With

        wb.Worksheets.PrintPreview
    End Sub

トピ主は別の道を行かれるようですが、同じ悩みをもってたどり着いた方用に置いておきます。

(もこな2) 2025/10/30(木) 22:29:34


コメント返信:

[ 一覧(最新更新順) ]


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