|
いろいろ調べたのですが、自己解決できそうにないので、質問させてください。
VBAのマクロ(最後に載せます)を使って、ワークシートメニューバーに
[仮]メニューを追加、「仮」に"Hoge()"を呼び出すitem[ほげ]を追加しました。
そして、[仮]-[ほげ]を選択すると、メッセージボックスが表示され、うまく
動いているように見えました。が、残念なことに、セルの編集中に[仮]-[ほげ]
を選択してもなにも実行されませんでした。
# 実行したExcelのバージョンは2000です
この状態はとても気持ち悪いので、セルの編集中でも"Hoge()"を実行できるよ
うにしたいのですが、方法がわかりません。どなたか教えて頂けないでしょうか?
また、そのものずばりでなくても、手掛かりとなりそうな情報を提供して頂ける
と助かります。
(自分で調べて挫折した事
・[編集]-[削除]等は、セル編集中に無効になるから、真似できれば・・・
→ セルの編集開始、終了でメニューのEditableを変更しているのかな?
→ でも、ActiveCellの編集開始、編集終了イベントが見つからない
→ CommandBarButton には Clickイベントしか無さそう
・[編集]-[コピー]等は、セル編集中にも実行できるから、真似できれば・・・
→ [編集]-[コピー]には、そもそもOnActionが登録されてない。訳わかんない。
)
よろしく御願いします。
'=========== ソース ===========
Sub AddHoge()
Dim sysMenuBar As CommandBar
Dim menu As CommandBarControl
Dim btn As CommandBarButton
' ワークシートメニューバーに "仮" を追加
Set sysMenuBar = Application.CommandBars("Worksheet Menu Bar")
Set menu = sysMenuBar.Controls.Add(Type:=msoControlPopup, Temporary:=True)
menu.Caption = "仮"
' "仮" に "ほげ" を追加
Set btn = menu.Controls.Add(Type:=msoControlButton)
With btn
.Caption = "ほげ"
.Style = msoButtonCaption
.FaceId = 0
.OnAction = "Hoge"
End With
End Sub
Sub Hoge()
MsgBox "ほげ"
End Sub
|
|