2
由于this problem不可解析,因此我正在探索一个用于自动生成InfoPath电子邮件的不同选项。如何在对象接管时使用CreateObject并传递用户输入?
下面的代码工作,除了一旦我使用.Submit
它会提示我使用输入 - 基本上InfoPath窗口要求我在对话框中点击“发送”。
我希望有一种方法可以基本上做下面的代码在伪代码中做的事情。问题是当.Submit
被调用时(documentation here - 看起来好像没有任何标志可以通过/设置忽略这个),VBA等待按键继续(因此SendKeys
不能像下面那样工作,至少按Alt + S)。
请参阅下面的图像出现确认的例子:
我想要么抑制这种(即使我不得不改变我是如何创建的InfoPath电子邮件)或能假冒“发送”按键。
Private Sub GenerateInfoPathEmail()
Dim mFilePath As String
Dim oApp As Object
Dim objEmailAdapter As EmailAdapterObject
mFilePath = "A:\tmp\testform.xsn"
Set oApp = CreateObject("InfoPath.Application")
oApp.XDocuments.NewFromSolution (mFilePath)
'infopath form has a connection called "email"
Set objEmailAdapter = oApp.XDocuments(0).DataAdapters("email")
objEmailAdapter.To = "[email protected]"
objEmailAdapter.CC = ""
objEmailAdapter.Intro = "intro"
objEmailAdapter.Subject = "subject"
objEmailAdapter.AttachmentType = 1 'xdXmlXns
objEmailAdapter.AttachmentFileName = mFilePath
'I want to be able to pass through
'the silly user input here to basically
'hit "send" (alt+s for keyboard shortcut)
objEmailAdapter.Submit
SendKeys ("%s") ' This obviously won't work because the code waits for user input
End Sub