• ベストアンサー

Excelのシートを印刷不可(禁止)にするにはどうしたら?

同様の質問があると思うのですが、どうもうまくいきません。 Windows2000 Excel2000 で下記をコピーして入れてみたのですが、 印刷禁止にならないのです。 もしかすると、マクロを使えていないのかも知れません。 誰か、“猿”でもわかるぐらい、Excelシートの印刷禁止の方法を 優しく解説して頂けないでしょうか? 宜しくお願い致します。 (特にマクロをどう使ったらいいのかわかっていないです) Private Sub Workbook_BeforePrint(Cancel As Boolean) MsgBox "このExcelシートは、印刷できません", vbExclamation Cancel = True End Sub

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

  • ベストアンサー
noname#22222
noname#22222
回答No.3

多分、VBのタイトルバーが<Microsoft Visual Basic - Book1 - [ThisWorkbook(コード)]になっていません。 <Microsoft Visual Basic - Book1 - [Sheet1(コード)] になっていませんか? □VBAProject(Book1) | | | □-□-Microsoft Excel Objects |    |-□ Sheet1(Sheet1) |    |-□ Sheet2(Sheet2) |    |-□ Sheet3(Sheet3) |    |-□ This Workbook <--- ここをクリックして! □-・・・・・・・・・・・ [ThisWorkbook(コード)] に移すとOKと思います。

tacpon
質問者

お礼

ありがとうございます! ←ここをクリックして! で、すぐわかりました! すごく助かりました。 有難うございます!

その他の回答 (2)

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

こんにちは。 そのコードを、ThisWorkbook モジュールに移し変えてください。他のモジュールでは、起動しません。

tacpon
質問者

お礼

その通りでした・・・ 勉強不足でした。 有難うございました!

  • mshr1962
  • ベストアンサー率39% (7418/18948)
回答No.1

「ツール」「マクロ」「セキュリティ」の設定は中か低になってますか? 中の場合Excelが開いた時にメッセージが表示されますが 「マクロを有効にする」を押してますか?

tacpon
質問者

お礼

う~~~ん VBAの扱い方の問題だったみたいです。。。 お返事有難うございました!

関連するQ&A

  • エクセルのsheet1つだけの印刷制御について

    win xp office2003を使用しています。 全てのsheetの印刷制御は、下記の方法でできるのはわかっているのですが..... ************************************************* Private Sub Workbook_BeforePrint(Cancel As Boolean) MsgBox "このExcelシートは、印刷できません", vbExclamation Cancel = True End Sub ************************************************* 1つのシートだけを印刷できないようにするにはどうしたら良いでしょうか?

  • Excel 特定のシートを印刷不可にする方法

    教えてください。 Excelで、特定のシートを印刷不可にする方法はありますでしょうか? Book全体で印刷不可にする方法は、以下 '========================== Private Sub Workbook_BeforePrint(Cancel As Boolean) Cancel = True '※1 タイトル = "ペーパーレス運動実施中!" スタイル = 48 'vbexclamation メッセージ = "印刷しないでください" 応答 = MsgBox(メッセージ, スタイル, タイトル) End Sub '========================== で可能なことは認識しています。 よろしくお願いします。

  • 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 以上 よろしくお願いします。

  • エクセルの特定シート(複数)を印刷不可にする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[2010]上で印刷不可をマクロ(Visual Basic)設定したファイルを作成しております。 しかし、困ったことに、ファイルを開く時にマクロを無効化されてしまうと、印刷が可能となってしまうことに気が付きました。 そのため、「エクセル無効で開く場合は、sheet1(=何も情報を記載しない)を開き、有効で開いた場合にのみsheet2(=情報あり)を表示する」設定ができないものか悩んでおります。 過去の質問でも挙がっておりましたので、参考に試行錯誤してみたもののうまくいきません。 どなたかお助けいただけないでしょうか ちなみに、印刷不可の設定については、以下のとおり書いております。 Private Sub Workbook_BeforePrint(Cancel As Boolean) MsgBox "このExcelシートは、印刷できません", vbExclamation Cancel = True 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なのかが取得できません。 印刷またはプレビューされる前にどちらの指示なのかを取得する方法がありますか?

  • エクセル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】を入力しても印刷できないのですが、なぜでしょう?

  • 選択しているシート印刷時にメッセージを表示させたい

    こんな感じになるかと思うのですが、 Private Sub Workbook_BeforePrint(Cancel As Boolean) MsgBox "メッセージ" With ActiveWorkbook.Sheets("sheet1") end sub 新しくシートを作り直すと、シート名with ActiveWorkbookのところで選択でいないため、 エラーになってしまいます。 この部分を現在選択しているシートに変えるにはどのようにすれば可能でしょうか。 お時間ある時教えていただければ幸いです。 よろしくお願い致します。

  • 印刷したくない列を非表示にするマクロなのですが、

    印刷したくない列を非表示にするマクロなのですが、 印刷後、あらためて列を再表示する必要があり大変手間です。 印刷後も自動で再表示する方法をご教示いただきたく存じます。 Private Sub Workbook_BeforePrint(Cancel As Boolean) Columns("A:C").Select Selection.EntireColumn.Hidden = True End Sub

  • 印刷制御について

    VBA全くの初心者です Private Sub Workbook_BeforePrint(Cancel As Boolean) If Range("A1").Value = 文字 Then Cancel = True End If End Sub 上記ではA1に文字が入ってないと印刷が出来ないのは分かりますが 例えばsheet1を印刷する時は、A1とA3とB5に文字が入ってないと印刷出来ない様にして、Sheet2を印刷する時は、A2とA4とB6に文字が入ってないと出来ない様にする事は可能でしょうか?

専門家に質問してみよう