メニューをカスタマイズしたブックを開いたときにシートを表示しないようにするには?
Question 73.3   Previous Next
こんにちは。
Excelのコマンドバーにメニュー項目を追加するマクロを作りたいと思っています。
マクロファイルを起動した時に、Sheetを表示しないでコマンドバーだけを表示するようにしたいのですが、うまくいきません…。
同様のマクロでSheetが表示されない成功例をコピーして以下の通り作ったのですが、こちらではSheetが表示されてしまいます。
どの様に修正すれば、できるようになるでしょうか? 拙い質問の仕方で恐縮ですが、教えて頂けると助かります(>_<)
Sub auto_open()                     'マクロをメニューバーに表示
    Application.ScreenUpdating = False
    Set MacmiSave_MACRO = ActiveWorkbook
    MenuBars(xlWorksheet).Reset     'メニューバーのリセット
    メニュー設定
End Sub
'-------------------------------------------------------------------------------
Sub メニュー設定()                  'メニューバーの表示内容を設定
Dim addMenus As Object
Dim menuItem As Object
    Set addMenus = MenuBars(xlWorksheet).Menus.Add(Caption:="Data保存くん(&M)")
    Set menuItem = MenuBars(xlWorksheet).Menus("Data保存くん")
        menuItem.MenuItems.Add Caption:="成約", OnAction:="Macro1"
        menuItem.MenuItems.Add Caption:="受渡", OnAction:="Macro2"
    Set menuItem = MenuBars(xlWorksheet).Menus("Data保存くん").MenuItems.Add( _
        Caption:="終了(&X)", OnAction:="終了処理")
End Sub
Answer   Copyright (C) 2005.5.11 永井善王
あなたが作成されたマクロを実行してみましたが、メニュー項目の追加は上手にできています。
よって、回答は、そのブックが開かれたときにワークシートが表示されないようにする方法だけになります。 2つありますので、具合のよい方を使ってください。
なお、前提条件として、そのブックにはワークシートが1つだけしか存在しないものとします。

マクロで行う方法
上記auto_openプロシージャの5行目と6行目の間に下記コードを1行追加し、上書き保存して閉じる
    ActiveWindow.Visible = False
Excelの一般操作で行う方法
ワークシートが表示されている状態で、 [ウィンドウ]メニュー→[表示しない]、 VBE画面を表示して[上書き保存]、 Excelを終了する

この後で、そのブックを開けば、右図のようにワークシートが表示されなくなります。
早速ためしてみて、結果をご連絡ください。 どちらの方法を採用したかもお知らせください。

 

Excel VBA Macro