Я отредактировал свой вопрос на основе отзывов.У меня есть форма, которую я хочу, чтобы пользователи могли без вывода сообщений (ввод пользователя не требуется) сохранять и отправлять одним нажатием кнопки.
Следующий код сохраняется в формате .pdf с правильным именем в том же документе / пути, что и исходный файл (который я хочу).Однако, когда электронное письмо отправлено, вложение является исходным файлом .docm.
Окончательное вложение должно быть в формате .pdf, так как оно будет отправлено по электронной почте на сайт Microsoft Team, а файлы с поддержкой макросов работать не будутКоманды.
Я новичок в VBA, помимо базовых команд для собственного рабочего процесса.Я работаю над различными учебными пособиями / курсами и очень большой книгой по vba для Office, но я был бы признателен за исправление ошибки кодирования новичка раньше, чем позже.
Private Sub btnSubmit_Click()
strName = ActiveDocument.SelectContentControlsByTitle("ddName")(1).Range.Text
strDate = ActiveDocument.SelectContentControlsByTitle("ddDate")(1).Range.Text
strTest = ActiveDocument.SelectContentControlsByTitle("ddTestNumber")(1).Range.Text
Dim strFilename As String
strFilename = strName & "_" & "VBATestFile_" & strTest & "_" & Format(strDate, "yyyymmdd") & ".pdf"
ActiveDocument.SaveAs2 strFilename, FileFormat:=wdFormatPDF
Dim OL As Object
Dim EmailItem As Object
Dim Doc As Document
Application.ScreenUpdating = False
Set OL = CreateObject("Outlook.Application")
Set EmailItem = OL.CreateItem(olMailItem)
Set Doc = ActiveDocument
Doc.Save
With EmailItem
.Subject = strName & " Test" & strTest
.Body = "Test email send for " & strName & " " & strTest & "."
.To = "email address here"
.Importance = olImportanceNormal
.Attachments.Add Doc.FullName
.Send
End With
Application.ScreenUpdating = True
MsgBox "Form Submitted", vbInformation
Set Doc = Nothing
Set OL = Nothing
Set EmailItem = Nothing
End Sub