У меня есть глобальный шаблон с настроенной лентой. Когда я пытаюсь открыть документ, я получаю сообщение об ошибке 4248, в котором утверждается, что команда не может быть запущена, поскольку ни один документ не открыт.
Код в подпрограмме onLoad проверяет, чтобы убедиться, что активный документ не является шаблоном или Normal.dotm, потому что я не хочу, чтобы переменные документа записывались в эти файлы с помощью вызываемых процедур. В Word 2013 это работало нормально, но я заметил, что в Word 2016 кажется, что процедура onLoad на ленте выполняется до открытия документа в Word.
Я указал на проблему в строке ActiveDocument.Name, где я могу перехватить сообщение об ошибке и продолжить его, но это не помогает мне запускать дополнительный код после определения, что это не глобальный шаблон документа или обычный .dotm.
Public myRibbonNewNormal As IRibbonUI
Public bVisible As Boolean
Dim bDocSaved As Boolean
Sub onLoad_newNormal(ribbon As IRibbonUI)
Set myRibbonNewNormal = ribbon
On Error GoTo onLoadError
If ActiveDocument.Name = "Styles.dotm" Or ActiveDocument.Name =
"newNormal.dotm" Then
Exit Sub
ElseIf ActiveDocument.ReadOnly Then
Exit Sub
Else
'Call checkDocType
Call uncheckUpdateStyles
Call removeClientFooter
Call checkTemplate
If bDocSaved <> True Then
Call preventSave
Else
'do nothing
End If
End If
Exit Sub
onLoadError:
If Err.Number = 0 Then
Resume Next
ElseIf Err.Number = 5 Then
Resume Next
ElseIf Err.Number = 5825 Then
Resume Next
ElseIf Err.Number = 5903 Then
Resume Next
'ElseIf Err.Number = 5155 Then
' Resume Next
ElseIf Err.Number = 4248 Then
Resume Next
Else
MsgBox "This error is in the onLoad sub in the newNormal RibbonControl" _
& vbCrLf & vbCfLf & "Error: " & Err.Number & vbCrLf & Err.Description, ,
"Error"
End If
End Sub
(Пожалуйста, извините за мою обработку ошибок. Я спешил, когда писал этот код, и просто не удосужился сделать это правильно.)
Есть ли способ подождать, пока не запустится сабвуфер onLoad, пока Word не откроет документ (простым двойным щелчком мыши)? Я уверен, что чего-то здесь не хватает, но я изо всех сил пытаюсь найти какую-либо информацию об этом в Интернете.