Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


12777 / 13644 ツリー ←次へ | 前へ→

【8679】メニューバー追加後の多重追加について kei 03/10/29(水) 9:43 質問
【8696】Re:メニューバー追加後の多重追加について Jaka 03/10/29(水) 14:39 回答
【8704】Re:メニューバー追加後の多重追加について kei 03/10/29(水) 16:15 質問
【8707】Re:メニューバー追加後の多重追加について Jaka 03/10/29(水) 17:09 回答
【8714】Re:メニューバー追加後の多重追加について kei 03/10/30(木) 9:53 お礼

【8679】メニューバー追加後の多重追加について
質問  kei  - 03/10/29(水) 9:43 -

引用なし
パスワード
   いつも大変お世話になっております。

以前、メニューバーの追加について質問させていただきましたが
追加後、Excelを閉じずにまた同じExcelを開くと
またメニューが追加されてしまいます。

メニューバーの多重追加を防ぎたいのですがどうぞご教授していただけないでしょうか?
宜しくお願いいたします。

下記のようにAuto_Open()でメニューがあるかチェックはしてみましたが
エラーになってしまいました。
====================================
Sub Auto_Open()

  If CommandBars("worksheet menu bar").Controls.Count = 12 And _
    CommandBars("worksheet menu bar").Controls(12).Caption = "test" Then
      MsgBox "testがすでに追加されている"
  Else
    'メニューの追加
    Dim menu1 As CommandBar
    Dim menu2 As CommandBarControl
    
    Set menu1 = Application.CommandBars("worksheet menu bar")
    Set menu2 = menu1.Controls.AddType:=msoControlPopup,
                          Temporary:=True)
    menu2.Caption = "test"
    With menu2
      .Controls.Add Type:=msoControlButton
      With .Controls(1)
        .Caption = "tmp1"
        .OnAction = "FormAct"
      End With
     End With
  End If
End Sub

【8696】Re:メニューバー追加後の多重追加について
回答  Jaka  - 03/10/29(水) 14:39 -

引用なし
パスワード
   こんにちは。

[#7753]

【8704】Re:メニューバー追加後の多重追加について
質問  kei  - 03/10/29(水) 16:15 -

引用なし
パスワード
   ご回答ありがとうございます。
>[#7753]
を参照させていただきました。
説明不足ですみません。
Auto_Close()での処理はしてあります。

ただ…BOOKを閉じないで同じEXCEL(同じマクロ)を多重起動した時に
起動したEXCELの数分だけメニューに追加されてしまうので
それを避けたいと思い質問させていただきました。


説明が下手ですみません。
ご教授いただけると有り難いです。

【8707】Re:メニューバー追加後の多重追加について
回答  Jaka  - 03/10/29(水) 17:09 -

引用なし
パスワード
   例えば

On Error Resume Next
Set fufu = CommandBars("Worksheet Menu Bar").Controls("マクロリスト(&M)")
Set fufu = Nothing
If Err Then
  MsgBox "ありません。"
Else
  MsgBox "あります。"
End If
On Error GoTo 0

【8714】Re:メニューバー追加後の多重追加について
お礼  kei  - 03/10/30(木) 9:53 -

引用なし
パスワード
   Jaka さん,いつもありがとうございます。

>Set fufu = CommandBars("Worksheet Menu Bar").Controls("マクロリスト(&M)")
Captionではなく
Controlsでできるんですね。
しかもif ではなく On Error で判定とのことで
大変勉強になりました。
ありがとうございました。

12777 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free