您好我在下面编写了以下代码,以自动发送确认用户已填写表单的电子邮件。目前我有一个带有一个提交按钮的powerpoint,它发送一个自动电子邮件。我还有一个名为序列号的文本框,用户输入部件序列号。
我希望能够发送已填写的powerpoint表单的副本,并以序列号命名。我很难将文本框信息保存为变量。有谁知道如何使下面的功能。我很抱歉,因为我对VBA还不熟悉。
Private Sub CommandButton1_Click()
Dim OL As Object
Dim EmailItem As Object
Dim Powerpoint As Presentation
Dim SerialNumtext As String
Dim FinalName As String
SerialNumtext = ActivePresentation.SelectContentControlsByTitle("SerialNumber")(1).Range.Text
FinalName = "Part Number" & SerialNumtext
Set OL = CreateObject("Outlook.Application")
Set EmailItem = OL.CreateItem(olMailItem)
Set Powerpoint = ActivePresentation
Powerpoint.Save
With EmailItem
.Subject = "SUBJECT LINE"
.Body = "BODY MESSAGE" & vbCrLf & _
"SECOND LINE BODY MESSAGE" & vbCrLf & _
"THIRD LINE BODY MESSAGE"
.To = "enduseremail"
.Importance = olImportanceNormal
'send the email with the powerpoint named after the serial number
.Attachments.Add Powerpoint.FinalName
.Send
End With
Set Powerpoint = Nothing
Set OL = Nothing
Set EmailItem = Nothing
End Sub
答案 0 :(得分:0)
Powerpoint没有SelectContentControlsByTitle方法;相反,您将访问控件及其文本,如:
SerialNumtext = ActivePresentation.Slides(1).Shapes("SerialNumber").OLEFormat.Object.Text
这假设控件在幻灯片1上。
如果你不想做出这个假设,但可以假设提交按钮和文本框在同一张幻灯片上:
SerialNumText = Me.Shapes("SerialNumber").OLEFormat.Object.Text
在这种情况下,我返回对包含控件的幻灯片对象的引用。