• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセルのsheet1つだけの印刷制御について)

エクセルのシート1つだけの印刷制御について

このQ&Aのポイント
  • エクセルのシート1つだけの印刷制御方法を教えてください。
  • 現在は全てのシートの印刷制御はできるが、1つのシートだけを印刷できない方法が分からない。
  • 使用しているのはWin XP Office 2003。ワークブック全体の印刷制御を無効にする方法を知っているが、1つのシートだけを無効にする方法が知りたい。

質問者が選んだベストアンサー

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.3

ThisWorkbookに Private Sub Workbook_BeforePrint(Cancel As Boolean) If ActiveSheet.Name = "Sheet3" Then MsgBox "このシートは印刷不可" Cancel = True End If End Sub といれ Sheet1をActiveにしてます。そういう状態で Sub test01() MsgBox ActiveSheet.Name Worksheets("sheet3").Range("a1:c3").PrintOut End Sub を実行すると、Sheet1と表示され、Sheet3が印刷されました。 だから操作で印刷する場合は、印刷するシートを必ずアクチブにするでしょうが、マクロも含めると、具体的に印刷するシート名を指定して禁止しないと駄目だと思います。しかし、プリントしようとしているSheet名をVBAで捉える方法が判りません。取りあえず。

nikkoukamenn
質問者

お礼

ご丁寧に回答頂きましてありがとうございます。今回教えて頂いた事を仕事に生かさせて頂きます。

その他の回答 (2)

回答No.2

Private Sub Workbook_BeforePrint(Cancel As Boolean) If ActiveSheet.Name = "Sheet1" Or ActiveSheet.Name = "ほげほげ" Then MsgBox "このExcelシートは、印刷できません", vbExclamation Cancel = True End If End Sub ですね。

回答No.1

例えばSheet1だけそうしたいのであれば Private Sub Workbook_BeforePrint(Cancel As Boolean) If ActiveSheet.Name = "Sheet1" Then MsgBox "このExcelシートは、印刷できません", vbExclamation Cancel = True End If End Sub でいかがでしょうか?

nikkoukamenn
質問者

お礼

早急な回答ありがとうございます。早速、試してみましたが、即効OKでした。ありがとうございます。 ちなみに、2つ以上のsheetに同内容の印刷制御を施すにはどうしたらよろしいでしょうか? 大変お手数ですが、お教え頂けませんでしょうか?

nikkoukamenn
質問者

補足

すみません。あともうひとつ。sheet名が、たとえばA又はBの場合 If ActiveSheet.Name ="A"or"B" みたいな事はできるのでしょうか? 複数のエクセルファイルがあり、一気に印刷制御を掛けたいんです。

関連するQ&A

専門家に質問してみよう