こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

-広告-

回答受付中の質問

非表示ページが印刷スキップされず困っています再掲

2018年7月28日に投稿した質問
『非表示ページが印刷スキップされず困っています。』に
画像を追加したい関係で新たに掲載させて頂いたものです。

EXCEl2013にて新規作成で以下の設定でしています。
MSPゴシック
フォントサイズ 11
列幅 8.38
行の高さ 13.5

用紙設定はA4縦、縮小なし

セルA1:C10、E1:G10、i1:K10のセル全てにデーターが入っていると仮定します。
(掲載画像はダミーデーターとして数字を入れています。)

ページ設定を以下のように3ページ指定します。
(D、H列は印刷範囲には含みません。)
1ページ目 A1:C10
2ページ目 E1:G10
3ページ目 i1:K10

2ページ目を印刷したくない場合
2ページ目 E列~G列を非表示にします。

ところが印刷プレビューでは2ページ目が空白ページで表示されます。
(D、H列を非表示にしても同様の症状が出ています。)


非表示の操作が面倒なので物は試しにグループ化を使用してみた所
同じような症状が出て困っています。


目的としては上記の3ページ分設定された原本シートを作成して
使用する書類に応じてシートを複製して書類(シート)ごとに
グループ化もしくは非表示でページ数を設定したいのです。

(使用するのが職場なのであまり詳しく書けない事をご了承願います。
実際は10ページほどありますが簡略化のために上記のように書いています。)


当方としてはグループ化もしくは手動で非表示切り替えをして
印刷時に2ページ目をスキップするようにしたいところです。

グループ化で無理なら手動で非表示の切り替えでも結構です。

最終的にどうしょうもなければページ設定を
その都度手動で切り替えるしかないと思っています。

マクロもありですができたら使用したくないのが本音です。
何しろデバッグが結構面倒ですから。
都合よく時間が空くとは限らないので・・・
(マクロのスキルですがマクロの自動記録を実施後、簡単な編集ができる程度です。
対話型マクロはお手上げですw)
なお職場のPCデーターの持ち帰りは残念ながら禁止です。


当方としては必要に応じて印刷ページを切り替えたいので
以下の方法は考えていません。

ページ設定で2ページ目の指定を印刷範囲から除去
E~G列のデーター消去もしくは列の削除

長文になりましたが一読頂きありがとうございます。
それではよろしくお願いします。

投稿日時 - 2018-08-12 22:30:03

QNo.9527003

困ってます

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

-広告-
-広告-

回答(4)

ANo.4

私の先ほどの説明では伝わらないかもしれないので
補足します。

>印刷範囲は、
>Print_Areaという名前で定義(記憶)され
>設定次第では、
>=Sheet1!$A$1:$C$10,Sheet1!$E$1:$G$10,Sheet1!$I$1:$K$10
>といったように、
> 複数の離れ小島を1つの印刷範囲として定義できます。
>この場合、小島ごとに改ページされます。
> 質問者さんもこのような定義をしてものと思います。

これは、
A1:C10をハイライトし、
Ctrlキーを押しながらE1:G10をハイライトし、
Ctrlキーを押しながらI1:K10をハイライトする。
その後、ページレイアウト、印刷範囲の設定をするいうことです。

つまり、回避策は、↑の操作ではなく、
A1:K10をハイライトし、
ページレイアウト、印刷範囲の設定をするいうことです。
また、改ページプレビューで表示される破線を移動せず
(実線に変えず)
セル幅や余白の設定、余白用列挿入など、やり繰りして
添付画像のようにするということです。

投稿日時 - 2018-08-14 07:58:14

ANo.3

今晩は
なるほどポツンですね
このような現象は体験がありません
しかし、D列、H列はどうして非表示でなく塗りつぶしですか?
添付の2段目D列とH列の間(2ページ目)の境界が少し幅がありそうですが
ここは、非表示ですよね
HohoPapa 様が何かをご存知のようですね
添付はセルに列名を入力したものです。
これで如何ですか

投稿日時 - 2018-08-13 21:12:46

ANo.2

列を非表示にして、印刷してみると、その列は印刷されなかった。(エクセルで有名な事項です)すなわち
質問者の言う内容の再現ができなかった。何か特殊な原因があると思うが、推測できない。
ーー
普通は印刷シートを別に作って、そこへ必要なデータを移し、データを移したシートを印刷する考えを用いるものと思う。コピー貼り付けで移すのは不可。
ーー
#1回答にも述べられている、VBAでは、
1例で
Sub test01()
Set sh1 = Worksheets("Sheet1")
Set ps1 = Worksheets("Sheet2")
Set ps2 = Worksheets("Sheet3")
Set ps3 = Worksheets("Sheet4")
'--
ps1.Range("A1:c10").Value = sh1.Range("A1:C10").Value
ps2.Range("A1:c10").Value = sh1.Range("E1:G10").Value
ps3.Range("A1:c10").Value = sh1.Range("I1:K10").Value
ps1.PrintOut
ps3.PrintOut
End Sub
'ps2は印刷しないように省いた
のように、コードは、平凡な、「セル範囲の書き連ね」でできる。
(わざと単純な仕方にした。)
ーー
私なら、むしろps1-ps3の3シートを使わず
ps1を印刷シートにして、
(1)ps1に印刷データを持ってきて
(2)ps1を印刷
(3)ps1の印刷範囲をクリア
(4)(1)-(3)の処理を繰り返す。
でやる。
印刷シートでの表示形式の設定なども、現シートとは無関係に、できてよい。
ーー
また、前のOKWAVEでの質問の番号なりを、参考に載せて質問するものだと思うが。

投稿日時 - 2018-08-13 17:48:04

ANo.1

◇前置き1 印刷範囲

印刷範囲は、
Print_Areaという名前で定義(記憶)され
設定次第では、
=Sheet1!$A$1:$C$10,Sheet1!$E$1:$G$10,Sheet1!$I$1:$K$10
といったように、
複数の離れ小島を1つの印刷範囲として定義できます。
この場合、小島ごとに改ページされます。
質問者さんもこのような定義をしてものと思います。


◇前置き2 改ページ場所

1つのシートを複数ページに分けて印刷する場合
改ページプレビューを開き
青色の破線で表示される(改ページ箇所を示す)線を
D&Dを使い移動することができ、
移動すると破線が実線に変わります。


◇質問された課題について

操作してみる限り、
どうやら、前置き1,2の一方でも行われると
非表示とした列(または行)のページも印刷対象と判断し、
結果的に空白のページが印刷されるようです。
また、Excelは、改ページ場所を、
利用者が明示的に指定したと受け取っているものと思います。

むしろそうしないと、(ページ番号が欠番になるなど)、
中には、都合の悪い利用者が出てくるだろうと思います。


◇解決するには

シート上の列幅やページ設定の(左右の)余白幅をやりくりし
前置き1,2を使わないように設定することで
期待の動作を実現できるだろうと思います。
(改ページ位置をExcelが動的に判断するので
 期待の動きになるんだろうと思います。)
なお、ページごとの列幅やデザイン次第では、
このやりくりに苦戦を強いられるかもしれません。


◇私だったら

質問者さんにいろいろな事情があるものとは思いますが
私だったら、1ページ/1シート とするか、
ページごとに印刷する/しないのチェックボックスを配置し
VBAで必要な印刷範囲の定義と印刷指示を繰り返します。

投稿日時 - 2018-08-13 10:10:26

-広告-
-広告-

あなたにオススメの質問

-広告-
-広告-