• ベストアンサー

マクロを強制的に有効にする方法

エクセルで、印刷できなくするマクロを作成し、社内に配布しましたが、「マクロを無効にする」を選択すると、通常通り印刷されてしまいます。配布された人のマクロセキュリティを変更しないで、常にマクロを有効にする方法などあるのでしょうか? あれば非常に助かります。お教え願います。

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

  • ベストアンサー
  • error123
  • ベストアンサー率21% (54/247)
回答No.4

No3です。お待たせ~♪ こんな感じかな。 Private Sub Workbook_Open() ActiveWorkbook.Unprotect Password:="error123" Sheets("Sheet1").Visible = True Sheets("Sheet1").Select End Sub これでマクロを有効にして開いたときだけSheet1が現れるわよ。 Private Sub Workbook_BeforeClose(Cancel As Boolean) Sheets("Sheet1").Visible = False ActiveWorkbook.Protect Password:="error123" End Sub これで、終了したら自動的にSheet1を隠してブックを保護しちゃいます。 パスワードはわたしのHNね! あと、知ってると思うけどVBAにもロック掛けておかないと詳しい人には覗かれちゃうわよ。

nikkoukamenn
質問者

お礼

あと、VBAをコピペして、保存後、再度立上げ、マクロを無効にしても、通常通りsheet1は現れました。 何がまずいんでしょうか?

nikkoukamenn
質問者

補足

ありがとうございます。素晴らしいです。 残念ながら、VBAのロック方法知りません。 また、教えて頂けます?

その他の回答 (6)

  • error123
  • ベストアンサー率21% (54/247)
回答No.7

No3と4です。お待たせ~♪ shishishishiさん、どうもです。 さて、2つ以上のsheetを非表示? こんな感じです。 Private Sub Workbook_BeforeClose(Cancel As Boolean) Sheets("Sheet1").Visible = False Sheets("Sheet2").Visible = False ActiveWorkbook.Protect Password:="error123" End Sub Private Sub Workbook_Open() ActiveWorkbook.Unprotect Password:="error123" Sheets("Sheet1").Visible = True Sheets("Sheet2").Visible = True Sheets("Sheet1").Select End Sub

nikkoukamenn
質問者

お礼

ありがとうございました。これで完璧です。感謝に尽きません。 これで、明日、自慢できます ヽ(`△´)/

回答No.6

No5です。 自分でもXPで実際にためしましたが、まちがいなく作動しました。 あと考えられるのは、閉じるときにマクロが有効でないと隠すほうのマクロは作動しませんが、大丈夫ですか? つまりマクロを無効でひらいたあと、コピペして閉じてもSheet1は非表示になりません。

nikkoukamenn
質問者

お礼

すみません。勘違いしてました(^^;; マクロを2つ貼らずに1つのみしかコピペしてなかったのが、原因です。お手数をお掛けしました。

nikkoukamenn
質問者

補足

すみません。何度もすみません。 2つ以上のsheetを非表示にする場合は、どうしたら良いでしょうか? 最後の質問です(^^;;

回答No.5

横からすみません。 > VBAをコピペして、保存後、再度立上げ、マクロを無効にしても、通常通りsheet1は現れました。 どこに貼り付けましたか? ひょっとして標準モジュール? This Wookbook のところじゃなきゃだめですよ。 > VBAのロック方法知りません。 VBEで一番上の「ツール」→「VBAProjectのプロパティ」→「保護」→「プロジェクトのロック」→「パスワード」です。

nikkoukamenn
質問者

補足

そうですね。コピペしたのは、This Wookbookのところで間違いありません。 あと、VBAのロックの仕方、了解しました。ありがとうございました。

  • error123
  • ベストアンサー率21% (54/247)
回答No.3

強制的にマクロを有効には出来ないけど、マクロを有効にしないと、そのシートが見えないように非表示にしてブック保護をかけておいたら? マクロでブック保護を解除してシートを再表示せるの。 そしたら否応無しに有効にするしかないでしょ? でもブックの終了時には自動的に元に戻さないとダメよ。

nikkoukamenn
質問者

補足

ありがとうございます。素晴らしいアイデアです。 マクロでブック保護を解除してシートを再表示せるのが、一番よさそうですね。 すみません。そのマクロはどうやったらいいんでしょうか?具体的に教えて頂けませんか? マクロに関しては未熟で.....

  • yoshi170
  • ベストアンサー率36% (1071/2934)
回答No.2

それができてしまうと、マクロを使ったウイルスが大増殖してしまう恐れがあるため、強制的に有効にすることはできません。

  • kuma-ku
  • ベストアンサー率54% (1558/2845)
回答No.1

こんにちは セキュリティ上、強制的にマクロを有効にすることはできなかったと記憶しています。 印刷をされたくない場合には、一旦PDFにし、セキュリティで【印刷不可】とするほうがよろしいのではないかと。。。