我想知道是否有人可以帮助我解决 VBA 问题——我已经 20 多年没有编写 VBA 了,我被困住了。
我创建了一个功能区按钮,如果从本地驱动器或文件共享打开 Word 文档,我需要将按钮设为灰色。如果从 SharePoint 或 OneDrive 打开文档,我需要激活按钮。
Dim Rib As IRibbonUI
Public MyTag As String
'Callback for customUI.onLoad
Sub RibbonOnLoad(ribbon As IRibbonUI)
Set Rib = ribbon
End Sub
Sub GetEnabledMacro(control As IRibbonControl, ByRef Enabled)
If MyTag = "Enable" Then
Enabled = True
Else
If control.Tag Like MyTag Then
Enabled = True
Else
Enabled = False
End If
End If
End Sub
Sub RefreshRibbon(Tag As String)
MyTag = Tag
If Rib Is Nothing Then
MsgBox "Error, Save/Restart your workbook" & vbNewLine & _
"Visit this page for a solution: Else
Rib.Invalidate
End If
End Sub
Sub EnabledAllControls()
'Enable all controls
Call RefreshRibbon(Tag:="*")
End Sub
Sub DisableAllControls()
'Disable all controls
Call RefreshRibbon(Tag:="")
End Sub
然后我使用这个 if 语句来测试文件位置。就是不火?
Sub AutoOpen()
If InStr(ActiveDocument.Path, "http") = 1 Then
Call EnabledAllControls
Else
Call DisableAllControls
End If
End Sub
我已经为此工作了一个多星期,并且我正在全力以赴完成它。