Excel (VBA)

Excel VBAに関するフォーラムです。
  • 掲示板への投稿には会員登録(無料)が必要です。会員登録がまだの方はこちら
  • 掲示板ご利用上のお願い」に反するご記入はご遠慮ください。
  • Q&A掲示板の使い方はこちらをご覧ください
トピックに返信
質問

 
(Windows 10 Pro : 指定なし)
別ブックの右クリックメニューにもマクロを表示させたい
投稿日時: 19/12/13 19:07:24
投稿者: ีウボン

右クリックメニューを追加登録するマクロが組み込まれているエクセルを開いた後、別のブックを開いて右クリックすると追加したメニューがありません。ブック間で右クリックメニューを共有することはできませんでしょうか?
 
なお、ブックを開いたときに右クリックメニューに登録しています。
Private Sub Auto_Open()
 
With CommandBars("Cell").Controls.Add(before:=1)
    .Caption = "Print"
    .OnAction = "Print_"
End With
 
End Sub

回答
投稿日時: 19/12/13 19:46:12
投稿者: WinArrow
投稿者のウェブサイトに移動

Excelのバージョンを明記しましょう
 
Excel2013以降だったら、
 
各々のブックで実行する必要があると思います。
 
 
Commandbars("cell")
は、2つあるから、2つとも設定する必要あります。

回答
投稿日時: 19/12/13 23:11:33
投稿者: WinArrow
投稿者のウェブサイトに移動

>各々のブックで実行する必要があると思います。
の解説
 
Excel2010まではMDI
Excel2013以降はSDI
という仕様変更によるもので、
ショートカットメニューは、ブックごとに設定することになります。
 
どうしても、共通にする必要があるならば、
クラスモジュール対応がよいでしょう。
 
 

回答
投稿日時: 19/12/13 23:13:04
投稿者: 半平太

これでどうですか?
      ↓
With Application.CommandBars("Cell").Controls.Add(before:=1)
 
私のXL2013では出来ました・・と言うか、
親オブジェクトを指定しないと実行時エラーになるんですけど。
Applicationか ThisWorkbook が必要なんじゃないですか?
 
ウボン さんはそこは問題なかったんですか?

回答
投稿日時: 19/12/14 01:45:36
投稿者: hatena
投稿者のウェブサイトに移動

当方のExcel365(2019)では、
 
With Application.CommandBars("Cell").Controls.Add(before:=1)
でも
With CommandBars("Cell").Controls.Add(before:=1)
でも出来ました。
別ブックを開いても追加されてます。
 
どこかで、
CommandBars("Cell").Reset
を実行しているとか、
Excel.Application を別インスタンスで生成してブックを開いているとかではないだろうか。

回答
投稿日時: 19/12/14 09:58:40
投稿者: WinArrow
投稿者のウェブサイトに移動

前レスの
MDI
SDI
の話は、間違いです。
 
Excel2019でテストしたら

引用:
With CommandBars("Cell").Controls.Add(before:=1)
     .Caption = "Print"
     .OnAction = "Print_"
 End With

問題りませんでした。
 
ただ、「表示もモード」に
「標準」と「改ページプレビュー」があります。
各々のショートカットメニューが異なるので
両方に設定しないと片方には、メニューが表示されません。
 
 
 

トピックに返信