这是我的场景:用户合并一个Word文档,我在快速访问工具栏上有一个按钮,执行一个使用Shell Execute来传递参数的宏。
这个工作,但是我需要的参数是Word文档的名称。当我查询活动文档时,它被称为“表单信函”。
有没有办法在VBA代码中获得Word文档(模板)名称,以便在文档合并后使用?我知道Word在合并后更改了名称,我需要包含合并字段的Word文档名称。
Const SW_SHOW = 1
Const SW_SHOWMAXIMIZED = 3
Public Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" ( _
ByVal hwnd As Long, ByVal lpOperation As String, _
ByVal lpFile As String, ByVal lpParameters As String, _
ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
Sub RunYourProgram()
l = Len(ActiveDocument)
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' The line below retrieves name, "FORM LETTER"(strips off .doc)
' rather than name of Word document template
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Doc_Name = Mid(ActiveDocument, 1, l - 4)
Dim RetVal As Long
On Error Resume Next
RetVal = ShellExecute(0, "open", "M:\gendoc\FG_To_ECF.exe", _
Doc_Name, "c:\Certificates", SW_SHOWNORMAL)
End Sub