dポイントプレゼントキャンペーン実施中!

Excel VBA初心者です。
エクセルのWorkbook Openイベントでワークシートメニューバーを非表示にしています。
マクロを作成したBookを開いてから他のBookを開いた場合はワークシートメニューバーは表示されるのですが(マクロは反映されない。)、他のBookを開いた後、マクロを作成したBookを開いた場合ワークシートメニューバーが他のBookまで非表示になってしまいます。(マクロが反映される。)
マクロを作成したBookをその他Bookから常に独立させて(別のインスタンス?として開く??)開く様にするにはどうしたらよろしいでしょうか?
以下がOpenイベントです。

Private Sub Workbook_Open()
Application.ScreenUpdating = False '動きを見せない
Application.DisplayAlerts = False '選択画面をとばす
Application.IgnoreRemoteRequests = True '他のアプリケーションを無視
Application.CommandBars("Worksheet Menu Bar").Enabled = False 'メニューバー非表示
~以下長々とあります。~
End Sub

宜しくお願い致します。
※メニューバー非表示は、社内に配布した場合にシート内容を変更されたくないためです。

A 回答 (4件)

マクロを作成したWorkbookのActiveイベントとDeactiveイベントにそれぞれ追加したらいかがですか?



Activeイベント
Application.CommandBars("Worksheet Menu Bar").Enabled = False

Deactiveイベント
Application.CommandBars("Worksheet Menu Bar").Enabled = True

そうすれば対象のBookから他のBookに移動する際にメニューバーの表示が切り替わると思います。

この回答への補足

補足致します。
CloseイベントでBook名の指定も考えたのですが、Book名はユーザーに自由に変更できる様にしたいので、指定する方法とりませんでした。

補足日時:2008/02/04 11:26
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
たしかにご回答頂きました方法で表示される様になるのですが、マクロが他のBookへ反映されている状態は変わらない為、以下の問題がおこります。

マクロ付きのBookはCloseイベントでBookの×ボタンを押すと自動的に保存して閉じる状態になっている⇒他のBookを開いた後マクロ付きBookを開く⇒他のBookの×ボタンを押す⇒エラーが発生。

すいませんがご教授の程、宜しくお願い致します。

お礼日時:2008/02/04 11:07

別途「保存終了ボタン」を用意し、保存終了のマクロはそこから走らせるようにして×クリックじゃ終了できないようにしたらどうでしょう?



Private Sub Workbook_BeforeClose(Cancel As Boolean)
MsgBox "×はダメ!Closeボタンで終了してください。", vbCritical
Cancel = True
End Sub
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
最終的にはmerlionXX様とNo,3様のアドバイスで落着きそうなのですが、
No,3様のお礼欄に記載した様に、マクロを作成したBookをその他Bookから常に独立させて開く様にしたいのですが…。
方法は無いのでしょうか?

お礼日時:2008/02/04 14:07

>すいませんがご教授の程、宜しくお願い致します。



わかりません。
回答者は質問に記載されていることからしか判断できません。新しいことを追加すれば、当然それ以外の操作に影響が出る可能性はあります。

>マクロ付きのBookはCloseイベントでBookの×ボタンを押すと自動的に保存して閉じる状態になっている⇒他のBookを開いた後マクロ付きBookを開く⇒他のBookの×ボタンを押す⇒エラーが発生。

現象だけ報告されても対策はわかりません。
ご質問者のプログラムのデバッグをするつもりはありませんので、これ以上回答は控えさせていただきます。
    • good
    • 0
この回答へのお礼

申し訳御座いません。

質問の仕方が悪くて申し訳御座いません。

ご回答頂きたかった事は"マクロを作成したBookをその他Bookから常に独立させて(別のインスタンス?として開く??)開く様にするにはどうしたらよろしいでしょうか?"という部分だったのですが…。

ご回答ありがとう御座いました。

お礼日時:2008/02/04 11:49

>シート内容を変更されたくないためです。



シートの保護ではダメなのですか?
    • good
    • 0
この回答へのお礼

早速のご意見ありがとうございます。
シートも保護はしております。
しかしシート保護はPASSを設定していても少し知識があればフリーソフト等で簡単に解除できます。
※マクロも同じなのですが…orz。
あとは構文を省略したいという勝手な理由です。

お礼日時:2008/02/04 10:51

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

このQ&Aを見た人はこんなQ&Aも見ています