0o0dグッ

Excel2000 でマクロの「ツール」から実行を出来なくする方法

Excel2000でマクロの「ツール」から実行を出来なくする方法

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

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

各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

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

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

Sub ccc()
 Call aaa
 Call bbb
End Sub

Private Sub aaa()
 MsgBox "aaa"
End Sub

Private Sub bbb()
 MsgBox "bbb"
End Sub