• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:メニューバーのイベントが2回実行される)

メニューバーのイベントが2回実行される

このQ&Aのポイント
  • CommandBarControlでメニューバーを作成し、イベントを実行すると、2回実行されてしまう問題が発生しています。
  • フォームを開くメニューバーを作成し、選択すると、同じコードが2回実行されてしまい、フォームが2つ開かれてしまいます。
  • 問題の原因が分からず、対策としては原因を調べるか、既に開かれているかをチェックするロジックを追加する必要があります。

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

  • ベストアンサー
  • end-u
  • ベストアンサー率79% (496/625)
回答No.2

>何故か2回実行されてしまいます。 引数を ( ) 付きで渡してるからですね。 OnActionプロパティに引数付きマクロ名を設定する時はシングルクォーテーションで囲みます。 .OnAction = "'OpenForm 2'" 他に、ParameterプロパティやTagプロパティを使ったりする方法もあります。 : With .Controls.Add   .Caption = "フォームを開く1"   .OnAction = "test"   .Parameter = 1 End With With .Controls.Add   .Caption = "フォームを開く2"   .OnAction = "test"   .Parameter = 2 End With : Sub test()   Dim i As Long      i = Application.CommandBars.ActionControl.Parameter   MsgBox i   UserForm1.Show 0 End Sub #http://www.vbalab.net/vbaqa/c-board.cgi?cmd=ntr;tree=42;id=FAQ

amamaq
質問者

お礼

end-uさん: どうもありがとうございました。 引数を ( ) 付きで渡してはダメなんて初めて知りました。 勉強不足でした。 即直したところバッチリでした。m(_ _)m

その他の回答 (1)

  • joqr
  • ベストアンサー率18% (742/4026)
回答No.1

>1は皆無ですし デバッグモードでトレースして、わからないのかな? >2はUserForm1が既に開いているかをチェックするロジックが分かりません。 意味無いでしょ? バグってるんですよ? あなたのプログラムは… 小手先のコーディングで回避するのは???です

関連するQ&A

専門家に質問してみよう