Powerpoint SaveAs文本框表单条目

时间:2018-02-13 14:51:06

标签: vba forms powerpoint save-as

您好我在下面编写了以下代码,以自动发送确认用户已填写表单的电子邮件。目前我有一个带有一个提交按钮的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

1 个答案:

答案 0 :(得分:0)

Powerpoint没有SelectContentControlsByTitle方法;相反,您将访问控件及其文本,如:

SerialNumtext = ActivePresentation.Slides(1).Shapes("SerialNumber").OLEFormat.Object.Text

这假设控件在幻灯片1上。

如果你不想做出这个假设,但可以假设提交按钮和文本框在同一张幻灯片上:

SerialNumText = Me.Shapes("SerialNumber").OLEFormat.Object.Text

在这种情况下,我返回对包含控件的幻灯片对象的引用。