「追加したはずの右クリックメニューが表示されない」事件 の続き

昨日は、追加したはずの右クリックメニューが表示されないケースを紹介しました。

infoment.hatenablog.com

その後しばらくして、また同じ相談が寄せられました。上記の経験があったため、私は直ぐに「標準」表示にするよう伝えました。ところが、それでも解決しないというのです。
調査してみたところ、次のことが分かりました。

  • 同じシート内でも、右クリックメニューが出る場合と、出ない場合がある。

さて、この違いは何だろう?色々と調べて、次のことが分かりました。

  • テーブルとして書式設定された範囲内では、今までの方法で右クリックメニューが出せない

そこで色々と調べ最終的に、右クリックメニューの追加マクロを次の通り修正しました。

Sub AddNewMenu(new_caption As String, new_action As String)
    Dim NewMenu(1) As CommandBarButton
        Set NewMenu(0) = Application.CommandBars("Cell").Controls.Add()
        Set NewMenu(1) = Application.CommandBars("List Range Popup").Controls.Add() '---(1)
    Dim i As Long
        For i = 0 To 1
            With NewMenu(i)
                .Caption = new_caption
                .OnAction = new_action
                .BeginGroup = False
            End With
        Next i
End Sub

(1)が、今回の主たる追加個所です。これでテーブルの範囲内であっても、右クリックメニューに指定したマクロが追加されることを確認しました。

その後、テーブルがあっても無くても、右クリックメニューを追加する場合は必ずこれを追加するようにしています。その結果、今迄のところ同じ問い合わせは受けていません。

※メニューを消す場合は、以下をご使用ください。

Sub DelMenu()
    Application.CommandBars("Cell").reset
    Application.CommandBars("List Range Popup").reset
End Sub

参考まで。