如何在对象接管时使用CreateObject并传递用户输入?

时间:2013-09-25 18:16:24

标签: vba infopath infopath2010

由于this problem似乎无法解析,我正在探索另一种自动生成InfoPath电子邮件的选项。

以下代码有效,除非我使用.Submit它提示我使用输入 - 基本上InfoPath窗口要求我在对话框上点击“发送”。

我希望有一种方法可以基本上完​​成以下代码在伪代码中的作用。问题是当.Submit被调用时(documentation here - 看起来没有任何标志我可以通过/设置忽略这一点),VBA等待按键继续(所以{{1} }不像下面这样工作,至少做Alt + S)。

有关出现确认的示例,请参阅下图:

enter image description here

我想要抑制它(即使我必须更改我创建InfoPath电子邮件的方式)或者能够伪造“发送”按键。

SendKeys

1 个答案:

答案 0 :(得分:0)

我不使用infopath因此无法在那里测试appraoch,但是您可以通过填写必填字段并使用{tab}代码(见下文)来使用sendkeys解决此问题。我希望tab键可以在用户输入表单的字段之间移动。

请注意,sendkeys可能不可靠,因此可能不是最好的主意,但如果您无法找到解决问题的另一种方法,那么可能值得一试。

Sub testSendKeys()
    Dim SendkeyString As String

    Application.Wait (3)                        'Wait 3 seconds to allow 
                                                'form to load
    SendkeyString = "myEmail@myDomain.com"      'Fill in the to field that appears
                                                'to be selected by default
    SendkeyString = SendkeyString & "{tab}"     'Tab to CC field
    SendkeyString = SendkeyString & "{tab}"     'Tab to BCC field
    SendkeyString = SendkeyString & "{tab}"     'Tab to Subject field
    SendkeyString = SendkeyString & "subject"   'Fill in subject details
    SendkeyString = SendkeyString & "%s"        'Alt-S to send

    SendKeys (SendkeyString)
End Sub