「追加したはずの右クリックメニューが表示されない事件」の真相 ②
先日来、2年越しの事件が解決しそうだ。
infoment.hatenablog.com
今日は、先日の続きから。
個人的に、追加した右クリックメニューを実行したくなるのは、以下のパターンのとき。
- テーブル上のセル又は範囲
- ピボットテーブル上のセル又は範囲
- 上記以外のセル又は範囲
そこで、先日無理矢理追加した右クリックメニューから、各ビューの上記それぞれについて何が登録されているかを確認してみた。
結果は、下表のとおり。
PivotTableは全ビュー共通なのに、RangeとTable(=ListObject)は、改ページプレビューだけ違う。何だか、一貫性が無いように見えて気持ち悪いが(仕様だから)仕方ない。
ところで2年前は、CommandBars("Cell") のように名前で指定した。
今回は、38や61などの番号で登録できないか試してみよう。
Sub Test() With Application.CommandBars.Item(38).Controls.Add .Caption = "テスト" End With End Sub
↓ できた。
それでは、これをループさせてみよう。
Sub Test() Dim LoopIndex As Variant For Each LoopIndex In Array(38, 41, 61, 74, 75) With Application.CommandBars(LoopIndex).Controls.Add .Caption = "テスト" End With Next End Sub
結果、ビューに関係なくテーブルでもピボットテーブルでも、右クリックメニューを表示させることが出来た。
次回に続きます。
参考まで。