• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Excel 2007: マクロブックをXLSTARTに入れると挙動がおかしくなる?)

Excel 2007でマクロブックをXLSTARTに入れると挙動がおかしくなる?

このQ&Aのポイント
  • Excel 2007でマクロブックをXLSTARTに入れると、Excelの挙動がおかしくなる現象があります。
  • 個人用マクロブックを作るとExcelが一発で閉じなくなり、任意のマクロ付きブックをXLSTARTに入れると新規文書が開かなくなる現象が発生します。
  • マクロブックをXLSTARTに入れながら起動時に白紙のブックが開き、[X]クリックでExcelが一発で終了する方法はあるのでしょうか。

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

  • ベストアンサー
  • hige_082
  • ベストアンサー率50% (379/747)
回答No.2

アドインはWorkbookのように、Auto_OpenやWorkbook_Open auto_CloseやWorkbook_BeforeCloseも普通に処理されますよ Workbook_AddinInstallやWorkbook_AddinUninstallは アドインを登録、解除時にしか処理されません AutoOpen・Closeなどは、アドインの登録、解除時 ファイルの開始・終了時、処理によって使い分けば良いと思います >Workbook_AddinInstallに入れてみましたが、動作しません。 上でもちょっと触れましたが、Workbook_AddinInstallを 処理させるには、一度アドインを解除し、登録しなおしてください コード的にはエラーは無いように思います >もうひとつはコンテキストメニューです。 コンテキストメニューですが、ほぼコマンドバーとコードは同じです Application.CommandBars("Cell") のように"Cell"となります リンクを貼っておきますので、参考にしてみてください http://d.hatena.ne.jp/Cassiopeia/20070507/1178530855

TYWalker
質問者

お礼

ありがとうございます! Auto_Closeで一発でした。 しょっちゅういじるので、とりあえずこちらで動作させ、リリース時には addininstall / addinuninstall に移そうと思います。 本当にありがとうございます。

その他の回答 (1)

  • hige_082
  • ベストアンサー率50% (379/747)
回答No.1

>マクロの配布を容易にするため、ブックにマクロを添付して、         ・         ・ >これに関連して以下のようなことが起きます。 は、余り良い方法とは思えません マクロの配布や更新を考えるのであれば、普通はアドイン形式にすると思うのですが アドインでは不都合なことがあるのでしょうか?

TYWalker
質問者

お礼

ありがとうございます。浅学にしてアドイン形式というものを知らなかったのですが、作成したところできました。xla形式にしたところ2003でも2007でも使えました。 ただ問題なのは、ツールバーとコンテキストメニューが使えなくなりました。 ショートカットキーは、今までAuto_Openマクロで、 Application.MacroOptions macro:="XXXXXXX", ShortcutKey:="N" アドインになってからは、 Private Sub Workbook_AddinInstall() に場所を移し、従来通り動作します。 ただ、ツールバーがとコンテキストメニューが問題です。 これまで、ツールバーは、Excelの表示メニューを使って作成し、添付でワークシートに添付していました。しかし、現在は、アドインは表示されないので、ワークシートに添付ができず、また、ツールバーを作成するときに登録するマクロも表示されません。 仕方がないので、手元の本を頼りに、以下のようなコードをWorkbook_AddinInstallに入れてみましたが、動作しません。(ツールバーも表示されず、エラーも出ない) Dim myCB As CommandBar Dim myCBCtrl As CommandBarButton On Error Resume Next Application.CommandBars("XXX").Delete Set myCB = Application.CommandBars.Add(Name:="XXXXX", Position:=msoBarBottom, temporary:=True) Set myCBCtrl = myCB.Controls.Add(Type:=msoControlButton) With myCBCtrl .Style = msoButtonIconAndCaption .Caption = "XXX" .OnAction = "subXXXXXXX" .FaceId = 30 End With myCB.Visible = True もうひとつはコンテキストメニューです。 従来シートでは、やはり AutoOpen から以下のようなマクロを呼んでいました。 Set SCM = Application.ShortcutMenus(xlWorksheetCell) SCM.MenuItems.AddMenu "XXXXX" SCM.MenuItems("LTB Helper").MenuItems.Add "AAAAA", OnAction:="subAAAAA" しかし、これも動作しなくなりました。(右クリックでコンテキストメニューが表示されません) 自分でも調べてみますが、もし何かわかりましたらご教示願いますようよろしくお願いいたします。

関連するQ&A