- 締切済み
エクセルの特定シート(複数)を印刷不可にする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シートは、印刷不可。 としたいのです。 ご伝授いただけると助かります。よろしくお願いします。
- uregi01
- お礼率20% (2/10)
- Excel(エクセル)
- 回答数1
- ありがとう数1
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- qualheart
- ベストアンサー率41% (1451/3486)
If ActiveSheet.Name <> "BB" Then Exit Sub の部分を変えれば良いですよ。 ここに、印刷可能なシートを定義しておけば良いです。 たとえばAAシートのみを印刷可能にする場合は If ActiveSheet.Name = "AA" Then Exit Sub と書いておけば、AAの場合だけ印刷不可をかけないようになります。 同じ要領で、印刷可能にしたいシート分、書いておけばOKです。 ご参考まで。
関連するQ&A
- Excel 特定のシートを印刷不可にする方法
教えてください。 Excelで、特定のシートを印刷不可にする方法はありますでしょうか? Book全体で印刷不可にする方法は、以下 '========================== Private Sub Workbook_BeforePrint(Cancel As Boolean) Cancel = True '※1 タイトル = "ペーパーレス運動実施中!" スタイル = 48 'vbexclamation メッセージ = "印刷しないでください" 応答 = MsgBox(メッセージ, スタイル, タイトル) End Sub '========================== で可能なことは認識しています。 よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- エクセル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製品
- Excelのシートを印刷不可(禁止)にするにはどうしたら?
同様の質問があると思うのですが、どうもうまくいきません。 Windows2000 Excel2000 で下記をコピーして入れてみたのですが、 印刷禁止にならないのです。 もしかすると、マクロを使えていないのかも知れません。 誰か、“猿”でもわかるぐらい、Excelシートの印刷禁止の方法を 優しく解説して頂けないでしょうか? 宜しくお願い致します。 (特にマクロをどう使ったらいいのかわかっていないです) Private Sub Workbook_BeforePrint(Cancel As Boolean) MsgBox "このExcelシートは、印刷できません", vbExclamation Cancel = True End Sub
- ベストアンサー
- オフィス系ソフト
- エクセルのsheet1つだけの印刷制御について
win xp office2003を使用しています。 全てのsheetの印刷制御は、下記の方法でできるのはわかっているのですが..... ************************************************* Private Sub Workbook_BeforePrint(Cancel As Boolean) MsgBox "このExcelシートは、印刷できません", vbExclamation Cancel = True End Sub ************************************************* 1つのシートだけを印刷できないようにするにはどうしたら良いでしょうか?
- ベストアンサー
- オフィス系ソフト
- 印刷後のVBAの実行 (3)
Private Sub Workbook_BeforePrint(Cancel As Boolean) If ActiveSheet.Name = "Sheet1" Then If Range("D6").Value = "" Then Cancel = True MsgBox ("名前を入力してください") Range("D6").Select Exit Sub End If Else If ActiveSheet.Name = "Sheet2" Then If Range("C11").Value = "" Then Cancel = True MsgBox ("受付時間を入力してください") Range("C11").Select Exit Sub End If Else Exit Sub End If End If If Worksheets("Sheet1").Range("D5") = "不要" Then GoTo P1 ActiveSheet.Range("A70:Y70").Copy If Worksheets("Sheet3").Range("A1").Value = "" Then Worksheets("Sheet3").Range("A1").PasteSpecial Paste:=xlPasteValues Else Worksheets("Sheet3").Range("A65536").End(xlUp).Offset(1, 0).PasteSpecial _ Paste:=xlPasteValues End If Application.CutCopyMode = False P1: ActiveSheet.Range("A1").Select End Sub sheet1のD5に「不要」と入っていたら 24~33行目の作業がキャンセルになりますが sheet2のD5にも「不要」と入っていたら、同じ様にキャンセルできる様に出来ますでしょうか? ご回答お願いします
- 締切済み
- オフィス系ソフト
- 印刷後のVBAの実行 (2)
Private Sub Workbook_BeforePrint(Cancel As Boolean) If ActiveSheet.Name = "Sheet1" Then If Range("D6").Value = "" Then Cancel = True MsgBox ("名前を入力してください") Range("D6").Select Exit Sub End If Else If ActiveSheet.Name = "Sheet2" Then If Range("C11").Value = "" Then Cancel = True MsgBox ("受付時間を入力してください") Range("C11").Select Exit Sub End If Else Exit Sub End If End If ActiveSheet.Range("A70:Y70").Copy If Worksheets("Sheet3").Range("A1").Value = "" Then Worksheets("Sheet3").Range("A1").PasteSpecial Paste:=xlPasteValues Else Worksheets("Sheet3").Range("A65536").End(xlUp).Offset(1, 0).PasteSpecial _ Paste:=xlPasteValues End If Application.CutCopyMode = False ActiveSheet.Range("A1").Select End Sub 先日、上記のコードを回答者の方から教えてもらい、とても助かっていますが sheet1のD5に「不要」という文字が入っていた場合、 sheet3への貼り付け(23~30行目の作業)をキャンセルして、最後にsheet1のA1を選択するようにはどの様にしたらいいでしょうか?
- 締切済み
- オフィス系ソフト
- マクロ無効時に特定のシートを表示させない方法
EXCEL[2010]上で印刷不可をマクロ(Visual Basic)設定したファイルを作成しております。 しかし、困ったことに、ファイルを開く時にマクロを無効化されてしまうと、印刷が可能となってしまうことに気が付きました。 そのため、「エクセル無効で開く場合は、sheet1(=何も情報を記載しない)を開き、有効で開いた場合にのみsheet2(=情報あり)を表示する」設定ができないものか悩んでおります。 過去の質問でも挙がっておりましたので、参考に試行錯誤してみたもののうまくいきません。 どなたかお助けいただけないでしょうか ちなみに、印刷不可の設定については、以下のとおり書いております。 Private Sub Workbook_BeforePrint(Cancel As Boolean) MsgBox "このExcelシートは、印刷できません", vbExclamation Cancel = True End Sub お手数をおかけします。 勉強不足と重々承知しておりますが、何卒ご教示いただければ幸いです。
- ベストアンサー
- 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設定 パスワード入力しても印刷不可
エクセル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) MsgBox "メッセージ" With ActiveWorkbook.Sheets("sheet1") end sub 新しくシートを作り直すと、シート名with ActiveWorkbookのところで選択でいないため、 エラーになってしまいます。 この部分を現在選択しているシートに変えるにはどのようにすれば可能でしょうか。 お時間ある時教えていただければ幸いです。 よろしくお願い致します。
- 締切済み
- オフィス系ソフト
お礼
早速のご返答ありがとうございます。 If ActiveSheet.Name = "AA" Then Exit Sub <>でなく、=にして、印刷可能なファイルのみを設定すればよかったのですね。 印刷不可のシートで設定することばかり考えていました。 ありがとうございました。