• 締切済み

excelでシートごと印刷しない設定にしたい

選択したEXCELブックを全シート印刷するツールがありまして こいつの運用で頭を悩ませています。 印刷範囲設定をかけたりシート非表示にすれば不要部分は印刷されないのですが、 表示する必要があるが印刷は不要というシートがあって、 一セルだけ印刷範囲に選んでそのセルを非表示とかにしても空白ページが1ページ印刷されてしまいます。 EXCELの特定シートをまるごと印刷しない設定とか方法は無いでしょうか。 EXCEL2016、マクロは使用可能です。 ツールは内部的に全シート選択&印刷をやっているのだと思います。 ツールを使わないという選択肢は無しです。 よろしくお願いします。

  • ann_k
  • お礼率78% (11/14)

みんなの回答

  • SI299792
  • ベストアンサー率48% (714/1472)
回答No.6

>ツールに関してですが個別販売はされておりません。 であれば、ツールの情報を聞いても無駄ですね。でも、どうしてもそのツールを使わなければならない事情は解りました。  非表示にすれば印刷されないのであれば、印刷前に非表示にするというのはどうでしょうか。問題は、AfterPrintというイベントがないので、印刷後再表示はできない事です。しかし、閉じる時に印刷するのならば、開く時に再表示すればいいです。  シートモジュールのThisWorkbookをダブルクリックして、そこに入れて下さい。 ' Option Explicit ' Private Sub Workbook_BeforePrint(Cancel As Boolean) '  印刷前に印刷範囲を指定していないシートを非表示にする   Dim Sheet As Worksheet '   For Each Sheet In Worksheets '     If Sheet.PageSetup.PrintArea = "" Then       Sheet.Visible = False     End If   Next Sheet End Sub ' Private Sub Workbook_Open() '  印刷範囲を指定していないシートを表示にする   Dim Sheet As Worksheet '   For Each Sheet In Worksheets '     If Sheet.PageSetup.PrintArea = "" Then       Sheet.Visible = True     End If   Next Sheet End Sub  だだ、各ワークブックにこのマクロを入れなければなりません。もし、対象のワークブックが沢山あるなら、実用的ではありません。  その場合、前に上げた回答を応用して、各ワークブックにマクロを入れなくても印刷前に非表示、開く時に再表示という事もあります。1つの回答にたくさん書くと混乱するし、この方法が貴方が気に入るかどうか判りません。それに、この方法がそのツールに有効かどうかも、やってみないと判りません。

ann_k
質問者

お礼

お礼が遅くなり申し訳ありません。 様々検討しましたが、それぞれ問題があり未だ決定打なく 色々お試し中です。 アイデアは参考にさせていただきます。 とても勉強になりました。ありがとうございました。

  • SI299792
  • ベストアンサー率48% (714/1472)
回答No.5

こちらこそ申し訳ない。 実は、「ツールを使わないという選択肢は無しです。」というのを見落としていました。 後から気づいたものの、ここでは回答の削除ができないので、放置するしかなかったのです。 「全シート印刷するツール」とは、どこから手に入れた何というツールなのでしょうか。 シートに印刷しない設定というのはありません。Excel は、そのツールを使うことを想定していません。ツールにそのような機能がない限り不可能です。 代替案です。ツールを使う方法でないので、お気に召さないかもしれません。 終了すると全印刷をするマクロです。 空白のワークブックでシートモジュールのThisWorkbookに入れて下さい。 次にこのマクロを入れたワークブックを保存して再起動します。 このワークブックを開いておけば、他のワークブックの終了時に印刷範囲を指定してあるシートを印刷します。 ' Option Explicit Private WithEvents xlApp As Application ' Private Sub Workbook_Open() '   Set xlApp = Application End Sub ' Private Sub Workbook_BeforeClose(Cancel As Boolean) '   Set xlApp = Nothing End Sub ' Private Sub xlApp_WorkbookBeforeClose(ByVal wb As Workbook, Cancel As Boolean) '   Dim Sheet As Worksheet '   Debug.Print wb.Name '   For Each Sheet In wb.Worksheets '     If Sheet.PageSetup.PrintArea > "" Then       Sheet.PrintOut     End If   Next Sheet End Sub

ann_k
質問者

お礼

回答ありがとうございます。 ツールに関してですが個別販売はされておりません。 大手ベンダーのとあるパッケージソフトの一部というところまでで勘弁してください。 〇シートに印刷しない設定というのはありません。 この言葉だけで助かります。 あるかないかわからないものを探すのはキビシイ作業なので。 色々調べたところ、プリンタ側に白紙をスキップするような機能が ついているものがちらほらあるようで、そちらで対応できないか調査中です。

  • chayamati
  • ベストアンサー率41% (254/607)
回答No.4

今晩は,回答No.3です。 >知りたいものは確かにある意味フィルタなのですが。 1.フィルタの設定 1-1.表の形式ですが、私はまず表名、作成日、ページ/総ページをヘッダに記述 1-2.1行目を項目名 1-3.2行目以降に情報 この形式でフィルタをかけます。 [1行目の任意のセル]→[データリボン]→[フィルタ] これでsheetのフィルタの用意が出来ました。 よく見かける表に 1行目表名、2行目項目名、3行目以降情報 このときは、項目名の行を1行目にするため、表名の行を削除して、 フィルタをかけ、表名の行を項目名の上に挿入します。 マクロは「フィルタセット」、「フィルタリセット」です >選択したEXCELブックを全シート印刷するツールがありまして  これがVBAなら  Private Sub() で始まり  End Sub で終わっています このPrivate Sub()の次の行にフィルタセットを挿入します また、 VBA起動から Private Sub Worksheet_SelectionChange(ByVal Target As Range) フィルタリセット End Sub とします

ann_k
質問者

お礼

回答ありがとうございます。 私がやりたいことは、この方法では実現できなさそうです。 ありがとうございました。

  • chayamati
  • ベストアンサー率41% (254/607)
回答No.3

フィルタ機能をVBAではなくマクロ記録で組み込めば出来るのでは

ann_k
質問者

お礼

回答ありがとうございます。 知りたいものは確かにある意味フィルタなのですが、もう少し詳しく教えていただけますでしょうか。 VBAもマクロ処理も可能です。

  • SI299792
  • ベストアンサー率48% (714/1472)
回答No.2

「選択したEXCELブックを」 ということは、ダイアログボックスを開いてエクセルファイルを選択して、全てのシートを印刷ということでしょうか。 であれば、このマクロです。 前回同様、印刷したくないシートは、印刷範囲をクリアして下さい。 ' Option Explicit ' Sub Macro1() '   Dim Files As Variant   Dim File As Variant   Dim Sheet As Worksheet '   Files = Application.GetOpenFilename("Microsoft Excelブック,*.xls*", _     MultiSelect:=True) '   If VarType(Files) = vbBoolean Then     End   End If '   For Each File In Files     Workbooks.Open File, ReadOnly:=True '     For Each Sheet In Worksheets '       If Sheet.PageSetup.PrintArea > "" Then         Sheet.PrintOut       End If     Next Sheet     ActiveWorkbook.Close False   Next File End Sub

ann_k
質問者

お礼

回答ありがとうございます。 確認したところ、印刷処理ですね。 申し訳ありませんが、 私が知りたいのは印刷処理ではなく、印刷処理に対する設定です。 説明がわかりにくくてすいません。

ann_k
質問者

補足

昨日書いた内容だと手順がわからないですね。 申し訳ない。 ツール上でExcelファイルを選択すると 通常のExcel画面が起動します。 そこで入力作業を行い、Excelを終了すると ツールの機能で、事後処理&全ページ印刷の処理が走る。 という具合です。 何度か繰り返し処理を行うこともあります。 よろしくお願いします。

  • SI299792
  • ベストアンサー率48% (714/1472)
回答No.1

そのツールがどんなものか判らないので、判りません。 マクロ可能なら、以下のマクロでどうでしょうか。 印刷範囲を設定してあるシートだけ印刷します。 印刷したくないシートは、印刷範囲をクリアして下さい。 ' Option Explicit ' Sub PrintOut() '   Dim Sheet As Worksheet '   For Each Sheet In Sheets '     If Sheet.PageSetup.PrintArea > "" Then       Sheet.PrintOut     End If   Next Sheet End Sub

関連するQ&A

  • Excelのページレイアウト>印刷範囲の設定

    Excelで、ページレイアウトから印刷範囲、印刷範囲の設定と進むとシート内に点線で印刷出来る範囲を示すことができると思います。それを設定する際、左上にある◢を押して全選択をしないといけませんが、1発でできません。必ずどこか一つだけセルを選択して「印刷範囲として1つのセルだけが選択されています」というエラーを出さないと点線が表示されません。 だから毎回、 「1つのセルだけを選択して設定し、エラーを出す」→「左上の◢を押して全選択してから設定」という謎の手順を踏まないといけません。 これって長年のバグなんですか?Excel2013でもExcel2019でも同じ感じです。それとも私が悪いんですか? 皆さんお聞かせください

  • Excel で特定のシートを印刷されないようにする

    実は既に特定のシートだけ印刷されないブックがあるのですが、どのように設定した結果印刷されなくなったのかを知りたいのです。 そのブックで印刷されないシートは一番左の(普通にブック全体を印刷した場合は1ページ目になる)シートです。そのシートは色々と設定値を入れられるようになっていて、2ページ目以降のシートからその値が参照されています。 ブック全体を印刷しようとすると必ず2ページ目からが印刷対象になり1ページ目はプレビューすら出てきません。というか1ページ目としてプレビューされるのが2ページ目なんです。(元の1ページ目は印刷時には存在しなかったかのように扱われます)。 その存在が消されたかのような1ページ目を開いた状態で「作業中のシートを印刷」にしてプレビューさせようとすると「印刷する対象がありません」と出ます。本当に印刷時だけそのページが亡き者にされているのです。 ここで質問する前に検索して色々調べてみましたが、印刷範囲を1セルだけにしてそのセルの行を非表示にするという方法も見つけました。しかしこれをやるとプレビュー時にその空のページが1ページ目として出てきます。実際に印刷させるとその空白ページは出力されないのでこれが一番近いような気はするのですがちょっと違います。 なお、その印刷されないページで改ページプレビューをやってみましたが、全体が灰色になってどこにも印刷範囲が見当たりませんでした。どこか非表示になっている箇所があるに違いないと思って探してみましたが見つかりません。こんなシートってどうやったら作れるんでしょうか?

  • エクセル 複数シートの余白設定について

    EXCEL2003を利用し、複数シートのブックでマニュアルを作成しています。方眼紙のようにセルを設定し、セルの大きさも全シートそろえました。また、各シートの余白・ヘッダー・フッターを同一にし、縮尺も100%で設定しているにも関わらず、印刷プレビューしてみたところ、各シートによって1ページあたりに印刷される範囲が異なってしまいます。改ページ設定もクリアし、印刷範囲設定もクリアしましたが、改善されません。(例:AのシートはAFのセルまで1ページに印刷されるところ、Bのソートでは、AAのセルまでしか1ページに印刷されず、2ページに分かれる)何か解決方法をご存知でしたら教えていただければ有難いです。

  • 印刷範囲設定を自動的に元に戻す方法は?

    Excel 2002 で作成したブックAの Sheet1 には[印刷範囲の設定]しており、長年印刷して来ました。必要な場合は、[ファイル]→[印刷範囲]を実行して表示される[印刷範囲の設定]と[印刷範囲のクリア]も使っておりました。 最近は、ブックAを Excel 2013 に読込み、ブックA.xls をブックA.xlsx に保存しなおして、従来どおり印刷が出来ております。 [ページレイアウト]→[ページ設定]→[印刷範囲]を辿ると、馴染みの[印刷範囲の設定]と[印刷範囲のクリア]のメニューが表示されます。 ところが最近気付いたことですが、何かの弾み(多分、印刷範囲外のセル範囲を選択をしたとき)に馴染みの2項目の他に[印刷範囲に追加]も表示されることがあります。この機能は Excel 2002 では存在しなかったと思うのですが、如何でしょうか? それから、印刷範囲設定済みのシート内の他の特定範囲だけを1回だけ印刷した後で、印刷範囲の再設定をすることなく、印刷範囲を元に戻しておきたいのですが、此れは可能でしょうか?YESならその手順を教えてください。

  • エクセルのマクロで、印刷設定をしたいのですが可能でしょうか?

    エクセルのマクロで、印刷設定をしたいのですが可能でしょうか? お世話になっています。 会社での作業を少しでも効率よく出来ないものかと、以下のようなことを考えています。 エクセル2003を使用していますが、下記のような動作をするマクロを組むことは可能でしょうか? よろしくご教授ください。 Sheet1は、入力用のシートとして使っています。 Sheet2は、Sheet1に入力された商品データなどから、必要な箇所のみ反映されるように設定しています。 このシートは、罫線などが存在し表形式になっており、全てを印刷するとA4用紙6枚分になります。 そこで、Sheet1(入力用のシート)のJ18セルに文字が入力された場合は、Sheet2(印刷用のシート)の1ページだけを印刷したく、Sheet1のj27セルに文字が入力された場合は、Sheet2の2ページまで・・・ Sheet1のJ36に文字が入力された場合は、Sheet2の3ページまでという風に印刷範囲を設定しなくても印刷出来るようにしたいのです。 よろしくお願いします。

  • マクロで印刷頁を設定する方法はありますか?

    エクセルのワークシートに【印刷シート(全5頁)】があるのですが、 この印刷シートの各頁の指定行をみて、空白でなければ該当頁を印刷するマクロは存在するのでしょうか? 具体的に申し上げれば以下のようになります。  1頁目→必ず印刷  2頁目→セルA20が空白でなければ1・2頁を印刷  3頁目→セルA40が空白でなければ1~3頁を印刷  4頁目→セルA60が空白でなければ1~4頁を印刷  5頁目→セルA80が空白でなければ全頁印刷 条件分岐IF THEN を使うのかとは思うのですが、複雑になると 全くマクロが組めないぐらい初心者です。 どなたかご教授いただけると助かります。 よろしくお願いします。

  • エクセルの「印刷範囲」の設定

    エクセル2002を使っています。常時改ページプレビュー表示にしていますが、「印刷範囲」の設定で一つのワークシート全体を印刷範囲から除外された(白いセルが全くない状態)のデータを見たことがあります。それってどうやって設定するのでしょうか。解る方、教えて下さい。

  • エクセルの一部のシートのみ正常に印刷できない。

    よろしくお願いします。状況は以下のとおりです。 1.エクセルでシート1.シート(2)、(3)、(4)の各1ページがあります。 2.印刷時、シート1、シート(2)の印刷プレビューは1/1ページと表示され正常に印刷されます。 3.シート(3)、(4)の印刷プレビューは各1ページに対し、1/24386  ページと表示され、印刷を中止しなければ空白ページとなってプリンターから何枚もA4用紙が 排出され印刷ができません。  エクセルは初心者です。なぜこのような状況になったのか原因がよくわかりません。 4.印刷ページを1ぺージに指定して印刷したが状況は変わりませんでした。 5.シート(3)、(4)を正常に印刷できる方法を御教授ください。 6.PCはWindows8.1 Excel2013を使用しています。

  • エクセルで複数シートの印刷

    エクセルでシート1からシート10までの セルA1からA5をまとめて1枚の紙に印刷したいのですが できますでしょうか? (マクロをつかわずに) プリンタのページレイアウトもうまくいかず、 10枚で出てくるやり方しか思いつかなかったのですが・・・。 よろしくお願いします。

  • エクセルの印刷設定

    エクセルで多数のシートを印刷する場合、 それぞれのシート毎に設定して印刷しています。 毎回同じ作業を行っています。 毎回設定しないで1度きりの設定で次回も同じ様に印刷できる方法を教えて下さい。 各シートの表の大きさは同じです、印刷範囲も同じです。 私の行ってる作業は、 1:選んだシートの表の印刷範囲を設定する。 2:用紙の印刷向きを横に設定する。 3:印刷プレビュー 4:そのままでは設定した範囲がA4に入らないので余白を狭めて1ページに収まるようにする。 この作業をシート毎に行い、印刷したいシートを選択して印刷開始。 次回もまた1から行わないと設定は記憶されていません。 効率よく出来る方法を教えて下さい。

専門家に質問してみよう