プロが教える店舗&オフィスのセキュリティ対策術

VBAをシートの「ツール」-「マクロ」-「実行」を出来なくする方法を教えて下さい。
ただ、VBA自体を動かなくさせるのではなく、あくまでもシート上に「ツール」から実行させない方法です。
ボタンに登録してあるマクロは、押す事で実行させたいです。
「ツール」-「マクロ」へ行くのをパスワード管理で制御する方法でも良いです。
Excel2000使用の初心者です。よろしくお願いします。

A 回答 (3件)

直接の回答じゃないですが、、


メニューのツール-マクロから実行させたくない理由は何でしょう?
もし、複数あるマクロを順序通りに実行させたい等の理由でダイアログに余計なマクロ名を表示させたくないって事なら、Private にすれば表示されません。

標準モジュールに下記のようにマクロを記述した場合、メニューのツール-マクロ では ccc しか表示されません。

Sub ccc()
 Call aaa
 Call bbb
End Sub

Private Sub aaa()
 MsgBox "aaa"
End Sub

Private Sub bbb()
 MsgBox "bbb"
End Sub
    • good
    • 0
この回答へのお礼

お礼が遅くなり申し訳ありませんでした。
おかげさまで解決する事が出来ました。
ありがとうございました。

お礼日時:2004/03/10 12:35

●「ツール」-「マクロ」のダイアログボックスにマクロを表示させないようにします。



各SheetのコードウインドウやThisWorkbookのコードウインドウの場合、
 『Private Sub』 にします。
                ※引数があれば何もしなくても非表示です
 
 
標準モジュールに書いたモジュールの場合は、ダミーの引数を書けば表示されません。
  (これが見えなくする方法です。ダミーの引数=意味のない引数です)

全て非表示にすれば、編集ボタンも押せません。

ボタンで実行していれば、呼び出し方を少し変えます。(下記に例示)

●「ツール」-「マクロ」のダイアログボックスで操作できなくても、「ツール」-「マクロ」-「Visual Basic Editor」でVBE画面に入れます。
こちらは、ツール→VBAProjectのプロパティ→保護タブ で、パスワードで保護すべきでしょう。

当方、Excel2000です。

-------- シート --------
Private Sub CommandButton1_Click()
  Call mod_AAA(dmy)  '// 標準モジュール
  Call sht_AAA     '// シート
End Sub

Private Sub sht_AAA()
  MsgBox "sht_AAA!"
End Sub

-------- 標準モジュール --------
Public dummy

Public Sub mod_AAA(dummy)
  MsgBox "mod_AAA!"
End Sub
 
    • good
    • 0
この回答へのお礼

お礼が遅くなり申し訳ありませんでした。
ご丁寧なご回答感謝致します。
おかげさまで解決する事が出来ました。
ありがとうございました。

お礼日時:2004/03/10 12:36

コマンドバーもVBAで操作できます。



参考URL:http://www2.moug.net/cgi-bin/technic.cgi?exvba+T …
    • good
    • 0
この回答へのお礼

お礼が遅くなり申し訳ありませんでした。
役に立つURLをご教示いただきありがとうございました。

お礼日時:2004/03/10 12:34

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!