У меня есть макрос, который создает документы из набора форм файлов, которые раньше были текстовыми шаблонами с расширением имени файла .dotx.
Я изменил файлы на шаблоны слов с поддержкой макросов с расширением .dotm, хочу создать файлы со встроенными макросами и соответствующим образом заполнить шаблоны.
Теперь создатель моего оригинального документа делаетне работает, я уверен, что он ищет файл типа .dotx и не уверен, как:
dim doc as 'macro enabled document'
, в отличие от
dim doc as document
другой части кодаможет потребоваться изменить это
Set doc = Documents.Add(Template:=strTemplate, Visible:=False)
Я думаю, что это может быть что-то вроде
Set doc = Documents.Add(***MacroEnabled***Template:=strTemplate, Visible:=False)
Если кто-то может указать мне правильное направление того, что я пытаюсьСделайте это будет высоко ценится.
Ниже приведен соответствующий раздел кода для справки:
Option Explicit
Private Const TemplateDirectory As String = "W:\Network Movement\Train Control & Authorities\Train Advices and Bulletins\Authorities\Train Advices\Sent\Kohe DIB maker mk II\L2 Bulletin maker"
Private Const MondayTemplateName As String = "L2 Mon.dotm"
Private Const TuesdayTemplateName As String = "L2 Tue.dotm"
Private Const WednesdayTemplateName As String = "L2 Wed.dotm"
Private Const ThursdayTemplateName As String = "L2 Thu.dotm"
Private Const FridayTemplateName As String = "L2 Fri.dotm"
Private Const SaturdayTemplateName As String = "L2 Sat.dotm"
Private Const SundayTemplateName As String = "L2 Sun.dotm"
Private Const OutputDirectory As String = "W:\Network Movement\Train Control & Authorities\Train Advices and Bulletins\Authorities\Train Advices\Sent\Kohe DIB maker mk II\L2 Bulletins"
Private Const DateFormat As String = "ddmmyy"
Private Const LongDateFormat As String = "DDDD DD MMMM YYYY"
Private Const FindText As String = "!!!!!!!!"
Sub ShowForm()
frmDateRange.Show
End Sub
Function CreateProFormaBulletins(StartDate As Date, EndDate As Date) As Boolean
Dim dat As Date
Dim strTemplate As String
Dim doc As Document
Dim strFilename As String
Dim datLongDate As Date
Dim i As Integer
Application.ScreenUpdating = False
For dat = StartDate To EndDate
If Weekday(dat) <> vbMonday Then ' no seperate documents created for monday
' create output directory if it dosen't exist
If Not DirExists(OutputDirectory & IIf(Right(OutputDirectory, 1) <> "\", "\", "")) Then
MkDir (OutputDirectory & IIf(Right(OutputDirectory, 1) <> "\", "\", ""))
End If
' build filename
strFilename = OutputDirectory & IIf(Right(OutputDirectory, 1) <> "\", "\", "") & Format(dat, DateFormat) & "L2" & ".docm"
' get template name based on constant
Select Case Weekday(dat)
Case vbMonday
strTemplate = MondayTemplateName
Case vbTuesday
strTemplate = TuesdayTemplateName
Case vbWednesday
strTemplate = WednesdayTemplateName
Case vbThursday
strTemplate = ThursdayTemplateName
Case vbFriday
strTemplate = FridayTemplateName
Case vbSaturday
strTemplate = SaturdayTemplateName
Case vbSunday
strTemplate = SundayTemplateName
End Select
' build full path template name
strTemplate = TemplateDirectory & IIf(Right(TemplateDirectory, 1) <> "\", "\", "") & strTemplate
' create doc
Set doc = Documents.Add(Template:=strTemplate, Visible:=False)
With doc
' replace text
With .Range.Find
.Text = FindText
.Replacement.Text = Format(dat, DateFormat) & "L2"
.Execute Replace:=wdReplaceAll'''