先日書いた記事に対し、アドバイスをいただいたので早速改訂してみた。
これはtag属性(IRibbonControlオブジェクトのTagプロパティ http://t.co/E0I3G8RqZm )の値を使った方が良さそう。 [VBA リボンから呼び出すマクロに共通の前処理をつける方法] http://t.co/cQD4ZSemQP #VBA
— きぬあさ (@kinuasa) 2015, 3月 6
といっても、xml側にTagを追加して、マクロ側の参照をIDからTagに換えるだけ。
どうせなので、2バイト文字でやってみた。
CustomUI.xmlのコード
肝心の追加した部分が右に切れちゃってるのでヨコスクロールしてください。
<?xml version="1.0" encoding="utf-8"?> <customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui"> <ribbon> <tabs> <tab id="SampleTab" label="○○タブ"> <group id="CustomGroupA" label="○○グループ"> <button id="Hello" imageMso="HappyFace" size="large" label="マクロA" tag="あ" onAction="Start" /> <button id="GoodBye" imageMso="SadFace" size="normal" label="マクロB" tag="い" onAction="Start" /> </group> </tab> </tabs> </ribbon> </customUI>
VBAコード
Sub Start(ByVal control As IRibbonControl) Call 共通処理 Application.Run control.Tag End Sub Private Sub あ() MsgBox "hello" End Sub Private Sub い() MsgBox "GoodBye" End Sub Private Sub 共通処理() MsgBox "RibbonClicked!" End Sub
ばっちし!
2015/03/11追記
この後さらに改訂したので、以下記事もどうぞ。