• ベストアンサー

EXCELのBOOKを印刷禁止にするには?

皆さんのお知恵を貸してください。 タイトルのとおり「EXCELのBOOKを印刷禁止」にしたいのですがその方法がわかりません。過去ログを探してみると、「マクロ」を利用した方法があるのですが、ファイルを開くときに「マクロを無効」にしてしまえば意味がないような気がするのですが・・・・ 参考:http://oshiete1.goo.ne.jp/kotaeru.php3?q=103296 マクロを無効にしてしまえばシートが開けないとか、若しくは全く違う方法で印刷禁止に出来れば嬉しいです。 ちなみに EXCEL2003 でOSはXP proです。 よろしくお願いします。

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

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

こんにちは。 正直なところ、意外に難しいマクロですね。 以下は、あまり、現実的なマクロではありませんが、いろんな処理を施してあります。使う側は、かなりストレス度の高いブックです。ここまでしたものを配られると、詳しい人は、あまり良い気持ちがしないかもしれません(^^; それと、配布の際に、相手の人の名前を付けておくとか。 最初に配布用のブックは、必ずオリジナルを残して、コピーで行ってください。 できるなら、書式-スタイルで、フォントは、一回り(10か9)ぐらい小さいものにすると良いです。 画像にすることによって、さらに、データの流出ができないようにします。 設定をややこしくするために、シートのデータを、コピーして、Shiftキーを押しながら、 メニューの編集-図の貼り付けで、画像のままにして、元のデータは削除してしまってください。なお、その図の書式設定のプロパティは、念のために、「オブジェクトは印刷しない」をオフにします。 計算等はできません。単に閲覧のみです。 次に、マクロが使用可能中に保存はできるのですが、イースターエッグのように、特定の場所に、パスワード(password)をおかないと保存できません。 例:A20, パスワード: 'password' 大文字小文字区別あり 書いたパスワードが消えたら、保存されて、配布できます。 シート名は変更やコピーはできないようにしてあります。 Const PSW = "abc" は、ワークシートと、シート・ウィンドウのロックのパスワード 必ず、VBA Project は、ロックしてください。 'ThisWorkbook モジュール 'プリントを制御するマクロ '最後に、VBAProject をロックして、シート1の適当な場所パスワード設定して、 '保存してください。 Const PSW = "abc" Private Sub Workbook_BeforeClose(Cancel As Boolean)  Call ThisWorkbook.PrintControls(True)  ThisWorkbook.Saved = True End Sub Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) 'パスワード設定 If StrComp(Sheet1.Cells(20, 1).Value, "password", vbBinaryCompare) = 0 Then   Cancel = False   Sheet1.Cells(20, 1).ClearContents   Application.GoTo Sheet1.Cells(1, 1)   ThisWorkbook.Unprotect Password:=PSW   Sheet2.Visible = xlSheetVeryHidden   ThisWorkbook.Protect Password:=PSW, Structure:=True, Windows:=True Else   Cancel = True End If End Sub Private Sub Workbook_Open()  With Sheet2   ThisWorkbook.Unprotect Password:=PSW   .Visible = xlSheetVisible   .Protect Password:=PSW   .EnableSelection = xlNoSelection   ThisWorkbook.Protect Password:=PSW, Structure:=True, Windows:=True  End With  Call ThisWorkbook.PrintControls(False) End Sub Sub PrintControls(flg As Boolean) On Error GoTo Errhandler With Application  .CommandBars("Standard").FindControl(, 2521).Enabled = flg '印刷  .CommandBars("Standard").FindControl(, 109).Enabled = flg '印刷プレビュー  .CommandBars("Worksheet Menu Bar").Controls("ファイル(&F)").Controls("印刷(&P)...").Enabled = flg '印刷  .CommandBars("Worksheet Menu Bar").Controls("ファイル(&F)").Controls("印刷プレビュー(&V)").Enabled = flg '印刷 End With Exit Sub Errhandler:  MsgBox Err.Number & " :" & Err.Description End Sub

inemurihime4423
質問者

お礼

回答有り難うございます。 >難しいマクロですね。 お手数をおかけいたしました。 正直、私のレベルを遙かに超えてしまってまして、正直マクロも全く理解できません^^;; せっかく回答いただきましたがうまく使いこなせませんでした。 1さんの言われるように、EXCELでは少し無理があるようですね・・・・ 皆さん有り難うございました。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (3)

  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.3

> ファイルを開くときに「マクロを無効」にしてしまえば意味がないような気がするのですが・・・・ 逆に発想して、マクロを有効にして開かないと無意味なファイルにしてしまったらどうでしょう? 肝心な部分(印刷させたくないシート)をVeryHiddenで非表示にしておき、代わりのダミーシートを表示させておきます。ワークブックをパスワード付きで保護しておけばマクロ無効で開いた状態では利用できません。 一方で、起動されたマクロの方で保護解除や利用シートの表示などの作業をさせます。 さらに必要な対策は、利用シートが表示された状態で保存できないような対策です。「Workbook_BeforeSave」イベントで初期状態に戻してやります。

inemurihime4423
質問者

お礼

回答ありがとうございます。 >マクロを有効にして開かないと無意味なファイルにしてしまったらどうでしょう? はい、こういった設定方法が知りたかったです^^ お手数ですが具体的な設置方法を教えていただければ助かります。

全文を見る
すると、全ての回答が全文表示されます。
  • gatt_mk
  • ベストアンサー率29% (356/1220)
回答No.2

「EXCELのBOOKを印刷禁止」とは内容を確認することはできても、印刷することはできないようにする、という意味でしょうか? Book自体を開けないようにするということなら、Excelファイルにパスワードを設定すればいいだけのような気がしますが。 Excelファイルを開けてしまえば、画面のハードコピーなどいくらでも印刷する手はあります。

inemurihime4423
質問者

お礼

回答ありがとうございます。 >確認することはできても、印刷することはできないようにする、という意味でしょうか? はい、そうです。 >画面のハードコピーなどいくらでも印刷する手はあります。 そうなんですけど、パソコンに詳しくない人たちが利用するのでハードコピーすら知らないかもしれませんので・・

全文を見る
すると、全ての回答が全文表示されます。
  • hana-hana3
  • ベストアンサー率31% (4940/15541)
回答No.1

エクセルではどうやっても不可能です。 あとは、PDFにして印刷制限をする程度しか対策は無いと思います。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

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

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

  • 教えてgooのゲストブック?

    http://oshiete1.goo.ne.jp/kotaeru.php3?q=554226 という質問で、「ゲストブック」とか「この掲示板のゲストブック」っていう言葉を見ました。 その回答者さんの名前をクリックしてみましたがそれらしいものは見つかりませんでした。 どなたかこの「ゲストブック」についてご存知ですか?

  • エクセルVBAで、テキストボックスに値を入れる(3)

    質問がバラバラになってしまってすみません! エクセルVBAで、テキストボックスに値を入れる(1)の 回答13で、 データシートの何行目~何行目までを印刷させる方法(Sheet7にボタン) をさせるには、どうしたら良いでしょうか?宜しくお願いします。 前回のURL:http://oshiete1.goo.ne.jp/kotaeru.php3?qid=79173       http://oshiete1.goo.ne.jp/kotaeru.php3?qid=85389

  • エクセルマクロ、複数のCSVファイルを読み込んで一つのファイルに繋げる方法

    別質問で教えて貰った方法(下記URLの#2)で、複数のCSVファイルを 読み込むマクロはわかったのですが、それらのファイルを一つに まとめる方法がよくわかりません。 新しいシート(or結果保存用のブック)を用意して、ここに順に繋げて いきたいのですが、どうしたら良いのでしょうか。 ちなみに、入力されるCSVファイルのデータの入っている列数は固定 なのですが、行数はファイル毎に異なります。 <大元の質問> http://oshiete1.goo.ne.jp/kotaeru.php3?q=359726

  • ハングルは禁止された?普及された?その証拠は?

    日本が朝鮮を植民地化していた頃のことなのですが、 このサイトではハングルを禁止していたとあります。 http://www.lifeinkorea.com/information/history2j.cfm また今日議論になったのですが、母がその当時はハングルを禁止し、逆らう者は次々と殺し、重い税を課していたと言っていました。 しかし、ほとんどのそういう情報を扱ったサイト(例えばhttp://3.csx.jp/peachy/data/korea/korea.html )では逆にハングルを普及したと主張していますし、このサイトでのハングルに関する質問でもそういう意見が多いす。自分もそれを信じたいのですが、母は自分がインターネットに騙されているみたいな言い様で聞く耳を持ちません。実際、事実がどうであったか判断する方法もよく考えればわかりません。本に書いてあれば真実というわけではないでしょうし。どうすればそういったことを証明することができるか、未熟な自分めに教えてもらえませんか? 参考にした質問 http://oshiete1.goo.ne.jp/kotaeru.php3?q=1566762 http://oshiete1.goo.ne.jp/kotaeru.php3?q=1328234 http://oshiete1.goo.ne.jp/kotaeru.php3?q=361758

  • エクセル 総ページ数が加算されないようにしたい

    http://www.okweb.ne.jp/kotaeru.php3?q=615921 過去ログを検索しまして↑こちらの情報を見つけたのですが、 これとまったく逆の事がしたいです。方法ありますでしょうか? 具体的には 1ファイル(ブック)の中にシートが2枚あります。 各シートは2ページづつの構成になっております。 1シートのみをアクティブにして印刷するとヘッダーに「1/2」~「2/2」と表示されるのですが、 「Ctrl」キーを使用して2つのシートを選択した状態で 印刷をすると「1/4」~「4/4」と表示に変わってしまいます。 これを各シート共に「1/2」~「2/2」と表示したいのですが、、、 宜しくお願い致します。

  • Excelの「新しいBOOKでシート数」1を指定しても反映されない。

    こんにちは。 Excelの「新しいBOOKでシート数」1を指定しても右クリックのメニューから新規作成でExcelファイルを作成した時にシート数が3になり反映されていません。 Excel.exeからの起動ですとシート数が1で大丈夫です。 調べますと「No.292780」に同じような質問がありましたが検索しても出てきません。 多分どこかにテンプレートファイルがあると思われますがご存知の方宜しくお願い致します。 調査方法としてレジストリの位置を教えて頂いても可です。 OS:WindowsXPPro Office:Office2000 以上、宜しくお願い致します。 (参考) http://oshiete1.goo.ne.jp/kotaeru.php3?q=292780

  • 再びエクセルのマクロについて

    前回、http://oshiete1.goo.ne.jp/kotaeru.php3?q=1179484で、質問させていただき、 だいぶ前に進みました。ありがとうございました。 さて、imogasiさんに誘導いただいた、 imogasiさんに、こちらのページを誘導していただき (http://okweb.jp/kotaeru.php3?q=113505) 拝見させていただきましたが、新たに疑問が出たのでまた教えてください。 例もそのまま移させてもらって実行しているつもりなのですが、(5)を自動でマクロで実行する、という部分がどうしても定義されていません。というエラーが出てしまいます。  また、印刷処理が済んだら、入力リストの欄外にでも、 ”済”印をつけるには、どのようにしたら良いのでしょうか。何度も申し訳ありませんが、よろしくお願いいたします。

  • リストから納品書の印刷

    http://oshiete1.goo.ne.jp/kotaeru.php3?q=1183409では、リストにあるデータの納品書の印刷について教えていただき、ありがとうございました。 Sub 楕円1_Click() Dim i '●●変数の宣言●● Worksheets("sheet1").Activate For i = 2 To 3 '300 Cells(1, "F") = i Range("a1:c8").PrintOut Next i End Sub sheet1で、印刷をすることにして、 リストは、sheet2にあるのですが、 マクロを実行すると、3行目までしか 印刷をしてくれないのですが、それはどうしてでしょうか。勉強不足なので何度も質問してごめんなさい。 よろしくお願いいたします。

  • FX取引会社

    過去ログ http://oshiete1.goo.ne.jp/kotaeru.php3?q=1994452 http://oshiete1.goo.ne.jp/kotaeru.php3?q=1977614 http://oshiete1.goo.ne.jp/kotaeru.php3?q=1964396 http://oshiete1.goo.ne.jp/kotaeru.php3?q=2010314 に、目を通したんですが、結局どれにしたら良いのか悩んでいます。 一応、FXのことや取引会社の選び方など一通り勉強しましたが、それでも信用や使い勝手まではわかりませんので。。 宜しければ、お勧めの会社をあげていただけたら幸いです。 ※今、トレイダース証券では美味しいキャンペーン中みたいですね。 http://www.traderssec.com/ex/adver/kawase/anniv_cam/

専門家に質問してみよう