• ベストアンサー

EXCEL VBAを使用して印刷及びコピー禁止をしたい

EXCELのVBAでちょっとした管理ソフトを作って いて、特定の人以外は印刷及びシートのコピー を禁止にしたいのですが、どのような方法があ るか教えてください。

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

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

こんばんは。 VBAで作っているなら、ついでに、以下のように、ThisWorkbook モジュールで、設定したらよいかと思います。 'ThisWorkbook モジュール Private Const PSW As String = "aaa" 'パスワード Private Sub Workbook_BeforePrint(Cancel As Boolean) '印刷時の時のパスワード Dim Ret As String  Ret = Application.InputBox("パスワードを入れてください", "パス入力", Type:=2)  If StrComp(Ret, PSW, vbBinaryCompare) <> 0 Then   Cancel = True  End If End Sub Private Sub Workbook_Open() 'オープンの時にパスワード設定させる  With Worksheets("Sheet1")   .Unprotect Password:=PSW   .Protect Password:=PSW, UserInterFaceOnly:=True   .EnableSelection = xlNoSelection  End With  ThisWorkbook.Protect Password:=PSW, Structure:=True, Windows:=True    With Application.CommandBars("CELL").Controls.Add _     (Type:=msoControlButton, Temporary:=True)    .BeginGroup = True    .Caption = "コピープロテクト_解除"    .OnAction = "ThisWorkbook.CopyUnProtect"  End With   End Sub Sub CopyUnProtect() 'マウスの右クリックメニュー、パスワード解除とロックをさせる   Dim Ret As String   With Worksheets("Sheet1")     If .EnableSelection = xlNoSelection Then       Ret = Application.InputBox("パスワードを入れてください", "パス入力", Type:=2)       If StrComp(Ret, PSW, vbBinaryCompare) = 0 Then         .Unprotect PSW         .EnableSelection = xlUnlockedCells         Beep       End If     Else       .Protect Password:=PSW, UserInterFaceOnly:=True       .EnableSelection = xlNoSelection       Beep     End If   End With End Sub

関連するQ&A

  • エクセル 書きこみ禁止のコピー

    エクセルで在庫表を作成し、数量のみを入力すれば、自動計算で在庫品総額が出るものを作製しました。その後、複数の人間が使用する為、「数式の入れてあるセルを消してしまう」といったトラブルがあり、「特定のセルへの書き込み禁止する」方法を知り実践していて思ったのですが、シート数だけで50近いし、各シートのページ数も多いところは20ページくらいあります。 これをひとつひとつ、書き込み禁止にしていくのはかなり面倒です。 最初に書き込み禁止にした完成形をコピーして作成すれば問題無かったのですが・・・・・。 何か良い方法はありますでしょうか?エクセル VBAとか使わないと無理でしょうか?ちなみにマクロの知識は全くありません。

  • エクセル VBA

    エクセル VBA コマンドボタン(印刷)をクリックするとSHeet1・SHeet2が 2つ印刷出来るような設定にしたいです。 普通は、SHeet1をコピーして Sheet2の画面を開いてコピーという手順を ボタン押すと、SHeet1・SHeet2が印刷されるようにしたいのですが・・・・ ちなみに印刷設定は出来ています。 このような ことはマクロで出来るのでしょうか? 記述を教えて下さい!

  • エクセルのVBAで、異なるブック間でのコピー&ペースト

    こんばんは。 エクセルのVBAで、異なるブック間でのコピー&ペーストに関しての質問です。 現在アクティブになっているシートのB4セルをコピーして、 現在開いているシートのブックとは異なる特定の ブック(”Book1")の特定のシート(”Sheet1”)のC5セルに貼り付けたい場合、 ●●●の部分に何と表現すればよいか教えてください。 Range("B4").Copy Destination:=●●● よろしくお願いいたします。

  • Excelの書込保護と同時にコピーも禁止する

    シートの保護で入力場所以外をロックしましたが、そのシートをコピーするといくらでも修正(改ざん)できます。 いじられたくないシートなので、更にシートのコピー自体を禁止する方法がどうしても分からず困っています。 皆様の知恵を拝借願えませんでしょうか。 Excel 2000 professionalを使っています。

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

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

  • Excel VBAでシートのコピーをできなくするには

    Excel VBAで シートのコピー及びシートの新規挿入を出来なくする事はできるでしょうか? どなたかご教示お願いいたします。

  • コピー印刷防止について

    エクセルデータなどを印刷したものをコピー機でコピーすると、「コピー禁止」など浮かびあがらせたいのですが、うまい方法はありますか? 特殊な紙かプリンタを使わず、フリーソフトなどあれば助かるのですが・・。 ぜひ、教えてください。

  • エクセル(VBA)のブック間でのコピーペーストについて

    こんにちは。VBA入門レベルのものですが、質問させてください。 ブックAとブックBを開いた状態にし、 ・ブックA⇒VBAを組む&データ貼付け先 ・ブックB⇒データコピー元 ブックBの特定セル(例:D10)からブックAの特定セル(例:E12)にコピー⇒貼付 する方法を探しています。 なお、ブックBは、ブック名とシート名が都度変わるので、「ブックAではない方の開いているエクセルファイルからデータをコピーし、ブックAに貼付ける」の構文にしたいです。 また、コピペの他に数式(イコール)で飛ぶ方式でもかまいません。 この内容でのVBAの記述方法が分かる方、どなたか教えて頂けますでしょうか。 すみませんがよろしくお願いいたします。 ※エクセル2003です。

  • VBAでファイルのシートをコピーしたい。

    VBAでファイルのシートをコピーしたい。 現在、FileCopyでEXCELファイルをコピーしていますが、特定のシートだけコピーしたいのですが、、 (現在の一部です)  FileCopy fs.FoundFiles(i), "C:\集計" どのように書き換えればよいのでしょうか? 宜しくお願いします。

  • excel vba シートがなければコピーしたい

    excel vba で教えてください sheet名0を雛形に、使用者が1 2 3のsheet名でコピーして利用できるようにしたい。1はあるのでコピーを作らない。2はないのでsheet名0をコピーして作るといったように現在sheet2があるや否やで作成するや否やを判断してsheet copyをしたい。 すべてのsheet を名前をしらべつつ判断したいのです 教えてください

専門家に質問してみよう