VBA 不是我的专长,但我们开始吧:
一旦隐藏或显示一组列,我想触发一个宏。我该如何存档?
我之前的研究结果
我能找到的唯一好的提示是MSDN 上的这个讨论。在这里,一个解决方案是使用以下方式起草的:
从 xlsx 文件的根目录创建一个customUI\customUI.xml
包含内容的文件
<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui" >
<commands >
<command
idMso="ColumnsHide"
onAction="ColumnHide_onAction"/>
<command
idMso="ColumnsUnhide"
onAction="ColumnUnhide_onAction"/>
</commands >
</customUI >
并添加
<Relationship Id="edTAB" Type="http://schemas.microsoft.com/office/2006/relationships/ui/extensibility" Target="customUI/customUI.xml" />
到_rels\_rels.xml
. (所有这一切使用 Visual Studio 可能要容易得多,但我无法访问微软世界中如此复杂的工具......)现在,可以通过以下方式使用宏:
Public Sub ColumnHide_onAction(control As IRibbonControl, ByRef cancelDefault)
'
' Code for onAction callback. Ribbon control command
'
MsgBox "Ribbon Column Hide"
cancelDefault = False
End Sub
Public Sub ColumnUnhide_onAction(control As IRibbonControl, ByRef cancelDefault)
'
' Code for onAction callback. Ribbon control command
'
MsgBox "Ribbon Column Unhide"
cancelDefault = False
End Sub
这种方法完美地捕获了列的隐藏和取消隐藏,但不能隐藏和取消隐藏组。所以,接近,但不完全在那里。
从这里下载可能的idMso
值,我得到了控件的通知。但是,使用与或不归档所需结果相同的方式。GroupViewShowHide
ColumnsHide
ColumnsUnhide
有任何想法吗?