過去ログ

                                Page      63
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   通常モードに戻る  ┃  INDEX  ┃  ≪前へ  │  次へ≫   
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
 ▼ユーザ定義のメニューバー  こうすけ 02/9/11(水) 10:27
   ┗Re:ユーザ定義のメニューバー  Jaka 02/9/11(水) 12:46
      ┣やたら解りにくかったので..。  Jaka 02/9/11(水) 13:20
      ┗Re:ユーザ定義のメニューバー  こうすけ 02/9/11(水) 13:32

 ───────────────────────────────────────
 ■題名 : ユーザ定義のメニューバー
 ■名前 : こうすけ
 ■日付 : 02/9/11(水) 10:27
 -------------------------------------------------------------------------
   おはようございます。
度々恐縮ですが、ご教授いただければ幸いです。

1.Excelを開き、以下のメニュー作成マクロを実行
2.Excelを閉じず、別の(2個目の)Excelを開く
3.2個目のExcelにまでメニューが反映されてしまう

実行したExcelにのみメニューを反映し、他のブックには影響を及ぼさないように
したいのですが、まずそういった事は可能なのでしょうか?

--------------------------------------------------------------
■メニュー作成マクロ
Sub MenuBarCreate()

  Application.MenuBars.Add ("MenuTest")
  
  MenuBars("MenuTest").Menus.Add ("テスト(&T)")
  MenuBars("MenuTest").Menus("テスト(&T)").MenuItems.Add Caption:="メニュー消去", OnAction:="MenuBarDelete"  

  MenuBars("MenuTest").Activate
 
End Sub

■メニュー削除マクロ
Sub MenuBarDelete()

  Application.MenuBars("MenuTest").Delete
  ’→95版はMenuBars(xlModule).activate
End Sub
--------------------------------------------------------------
 ───────────────────────────────────────  ■題名 : Re:ユーザ定義のメニューバー  ■名前 : Jaka  ■日付 : 02/9/11(水) 12:46  -------------------------------------------------------------------------
   こんにちは。

こんな感じじゃダメ?
ThisWorkBookに書きます。

Private Sub Workbook_Activate()
  Application.MenuBars.Add ("MenuTest")
  MenuBars("MenuTest").Menus.Add ("テスト(&T)")
  MenuBars("MenuTest").Menus("テスト(&T)").MenuItems.Add Caption:="メニュー消去", OnAction:="MenuBarDelete"
  MenuBars("MenuTest").Activate
End Sub

Private Sub Workbook_Deactivate()
  On Error Resume Next
  Application.MenuBars("MenuTest").Delete
End Sub
 ───────────────────────────────────────  ■題名 : やたら解りにくかったので..。  ■名前 : Jaka  ■日付 : 02/9/11(水) 13:20  -------------------------------------------------------------------------
   標準モジュールコード

Sub MenuBarDelete()
  On Error Resume Next
  Application.MenuBars("MenuTest").Delete
  '→95版はMenuBars(xlModule).activate
End Sub


ThisWorkBookコード

Private Sub Workbook_Activate()
  Application.MenuBars.Add ("MenuTest")
 
  MenuBars("MenuTest").Menus.Add ("テスト(&T)")
  MenuBars("MenuTest").Menus("テスト(&T)").MenuItems.Add Caption:="メニュー消去", OnAction:="MenuBarDelete"

  MenuBars("MenuTest").Activate
End Sub

Private Sub Workbook_Deactivate()
  MenuBarDelete
End Sub
 ───────────────────────────────────────  ■題名 : Re:ユーザ定義のメニューバー  ■名前 : こうすけ  ■日付 : 02/9/11(水) 13:32  -------------------------------------------------------------------------
   ▼Jaka さん:
>こんにちは。
>
>こんな感じじゃダメ?
>ThisWorkBookに書きます。
>
>Private Sub Workbook_Activate()
>  Application.MenuBars.Add ("MenuTest")
>  MenuBars("MenuTest").Menus.Add ("テスト(&T)")
>  MenuBars("MenuTest").Menus("テスト(&T)").MenuItems.Add Caption:="メニュー消去", OnAction:="MenuBarDelete"
>  MenuBars("MenuTest").Activate
>End Sub
>
>Private Sub Workbook_Deactivate()
>  On Error Resume Next
>  Application.MenuBars("MenuTest").Delete
>End Sub

解決いたしました。ありがとうございます。
auto_open、auto_closeに組み込んでいたのが敗因でした(−−;;

ただ95版はWorkBookイベントが用意されていない為、何で代用出来るか
調査してみます(^^;
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━    通常モードに戻る  ┃  INDEX  ┃  ≪前へ  │  次へ≫    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━                                 Page 63