エクセルのシート1つだけの印刷制御について
- エクセルのシート1つだけの印刷制御方法を教えてください。
- 現在は全てのシートの印刷制御はできるが、1つのシートだけを印刷できない方法が分からない。
- 使用しているのはWin XP Office 2003。ワークブック全体の印刷制御を無効にする方法を知っているが、1つのシートだけを無効にする方法が知りたい。
- ベストアンサー
エクセルのsheet1つだけの印刷制御について
win xp office2003を使用しています。 全てのsheetの印刷制御は、下記の方法でできるのはわかっているのですが..... ************************************************* Private Sub Workbook_BeforePrint(Cancel As Boolean) MsgBox "このExcelシートは、印刷できません", vbExclamation Cancel = True End Sub ************************************************* 1つのシートだけを印刷できないようにするにはどうしたら良いでしょうか?
- nikkoukamenn
- お礼率29% (62/207)
- オフィス系ソフト
- 回答数3
- ありがとう数2
- みんなの回答 (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で捉える方法が判りません。取りあえず。
その他の回答 (2)
- shishishishi
- ベストアンサー率39% (362/921)
Private Sub Workbook_BeforePrint(Cancel As Boolean) If ActiveSheet.Name = "Sheet1" Or ActiveSheet.Name = "ほげほげ" Then MsgBox "このExcelシートは、印刷できません", vbExclamation Cancel = True End If End Sub ですね。
- shishishishi
- ベストアンサー率39% (362/921)
例えばSheet1だけそうしたいのであれば Private Sub Workbook_BeforePrint(Cancel As Boolean) If ActiveSheet.Name = "Sheet1" Then MsgBox "このExcelシートは、印刷できません", vbExclamation Cancel = True End If End Sub でいかがでしょうか?
お礼
早急な回答ありがとうございます。早速、試してみましたが、即効OKでした。ありがとうございます。 ちなみに、2つ以上のsheetに同内容の印刷制御を施すにはどうしたらよろしいでしょうか? 大変お手数ですが、お教え頂けませんでしょうか?
補足
すみません。あともうひとつ。sheet名が、たとえばA又はBの場合 If ActiveSheet.Name ="A"or"B" みたいな事はできるのでしょうか? 複数のエクセルファイルがあり、一気に印刷制御を掛けたいんです。
関連するQ&A
- Excelのシートを印刷不可(禁止)にするにはどうしたら?
同様の質問があると思うのですが、どうもうまくいきません。 Windows2000 Excel2000 で下記をコピーして入れてみたのですが、 印刷禁止にならないのです。 もしかすると、マクロを使えていないのかも知れません。 誰か、“猿”でもわかるぐらい、Excelシートの印刷禁止の方法を 優しく解説して頂けないでしょうか? 宜しくお願い致します。 (特にマクロをどう使ったらいいのかわかっていないです) Private Sub Workbook_BeforePrint(Cancel As Boolean) MsgBox "このExcelシートは、印刷できません", vbExclamation Cancel = True End Sub
- ベストアンサー
- オフィス系ソフト
- Excel 特定のシートを印刷不可にする方法
教えてください。 Excelで、特定のシートを印刷不可にする方法はありますでしょうか? Book全体で印刷不可にする方法は、以下 '========================== Private Sub Workbook_BeforePrint(Cancel As Boolean) Cancel = True '※1 タイトル = "ペーパーレス運動実施中!" スタイル = 48 'vbexclamation メッセージ = "印刷しないでください" 応答 = MsgBox(メッセージ, スタイル, タイトル) End Sub '========================== で可能なことは認識しています。 よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- エクセルの特定シート(複数)を印刷不可にするVBA
教えてください。VBA超初心者です。 エクセルで、特定の複数のシート(指定シート)を印刷不可にする方法はありますでしょうか? いろいろと調べてみたところ、特定シート(一つ)を指定する場合はわかりました。 BBシート印刷不可。 ========================== Private Sub Workbook_BeforePrint(Cancel As Boolean) If ActiveSheet.Name <> "BB" Then Exit Sub MsgBox "印刷できません" Cancel = True End Sub '========================== できれば、3つあるシートのうち、 AAシートは印刷可能。 BBシートとCCシートは、印刷不可。 としたいのです。 ご伝授いただけると助かります。よろしくお願いします。
- 締切済み
- Excel(エクセル)
- Excel 印刷禁止 マクロの作り方
毎年の期末で担当者が変わるため、 3/31で印刷を禁止するマクロを作りましたが、 これを応用して初めての使用後、30日で印刷が出来なくなるように しようと思いましたが、なかなか出来ません。どなたか力を貸してください。 Private Sub Workbook_BeforePrint(Cancel As Boolean) Dim D As Integer D = (Now+30) - Now If D <= 0 Then Cancel = True MsgBox "30日経過しましたので、担当者へ連絡してして下さい。印刷できません", 48, " Else Cancel = False Exit Sub End If End Sub 以上 よろしくお願いします。
- 締切済み
- Windows XP
- エクセルVBAのBeforePrintで
ThisWorkbookモジュールで Private Sub Workbook_BeforePrint(Cancel As Boolean) If ActiveSheet.Name <> "Sheet1" Then Exit Sub MsgBox "BeforePrintイベント発生" End Sub を使って、Sheet1での印刷のイベントを取得できます。 ただ、指示がPrintなのかPrintPreviewなのかが取得できません。 印刷またはプレビューされる前にどちらの指示なのかを取得する方法がありますか?
- ベストアンサー
- その他MS Office製品
- 選択しているシート印刷時にメッセージを表示させたい
こんな感じになるかと思うのですが、 Private Sub Workbook_BeforePrint(Cancel As Boolean) MsgBox "メッセージ" With ActiveWorkbook.Sheets("sheet1") end sub 新しくシートを作り直すと、シート名with ActiveWorkbookのところで選択でいないため、 エラーになってしまいます。 この部分を現在選択しているシートに変えるにはどのようにすれば可能でしょうか。 お時間ある時教えていただければ幸いです。 よろしくお願い致します。
- 締切済み
- オフィス系ソフト
- マクロ無効時に特定のシートを表示させない方法
EXCEL[2010]上で印刷不可をマクロ(Visual Basic)設定したファイルを作成しております。 しかし、困ったことに、ファイルを開く時にマクロを無効化されてしまうと、印刷が可能となってしまうことに気が付きました。 そのため、「エクセル無効で開く場合は、sheet1(=何も情報を記載しない)を開き、有効で開いた場合にのみsheet2(=情報あり)を表示する」設定ができないものか悩んでおります。 過去の質問でも挙がっておりましたので、参考に試行錯誤してみたもののうまくいきません。 どなたかお助けいただけないでしょうか ちなみに、印刷不可の設定については、以下のとおり書いております。 Private Sub Workbook_BeforePrint(Cancel As Boolean) MsgBox "このExcelシートは、印刷できません", vbExclamation Cancel = True End Sub お手数をおかけします。 勉強不足と重々承知しておりますが、何卒ご教示いただければ幸いです。
- ベストアンサー
- Excel(エクセル)
- エクセルVBA設定 パスワード入力しても印刷不可
エクセルVBAでパスワードを入力しないと印刷できない設定にしました。 Private Sub Workbook_BeforePrint(Cancel As Boolean) Password = "1111" x = InputBox("印刷注意 パスワード") If x = Password Then Else Cancel = True End If End Sub パスワード【1111】を入力しても印刷できないのですが、なぜでしょう?
- ベストアンサー
- その他MS Office製品
- 印刷したくない列を非表示にするマクロなのですが、
印刷したくない列を非表示にするマクロなのですが、 印刷後、あらためて列を再表示する必要があり大変手間です。 印刷後も自動で再表示する方法をご教示いただきたく存じます。 Private Sub Workbook_BeforePrint(Cancel As Boolean) Columns("A:C").Select Selection.EntireColumn.Hidden = True End Sub
- ベストアンサー
- オフィス系ソフト
お礼
ご丁寧に回答頂きましてありがとうございます。今回教えて頂いた事を仕事に生かさせて頂きます。