2016-04-20 22 views
0

VBAエクセルプロジェクト(クラスプロジェクト)から電子メールを送信しようとしましたが、面白いエラーが発生しました。オートメーションエラー:ClassFactory cannot supply requested class.私のコードは以下の通りです。このエラーがなぜ表示されるのか不思議でした。また、VBAから電子メールを送信するより良い方法があるので、それをどのユーザーにでも送信できます。また、デバイスからのOutlookデータを使わずに正しいアドレスに電子メールを送信しますか?あらかじめありがとうございます。私はこのフォーラムが特定の質問の定式化を強調していることを知っています。VBA電子メール、Outlookエラー

Private Sub cmdEmail_Click() 

    'Assign Variables to Appropriate Data Type 
    Dim strEmailtoUser As String 
    Dim OutApptoUser As Object 
    Dim OutMailtoUser As MailItem 
    Dim DestwbtoUser As Workbook 

    'Copy Worksheet 
    Workbooks("alis9035-Project.Updated.xlsm").Sheets("Final List!").Copy 

    'Ask user for their email 
    strEmailtoUser = InputBox("What email would you like this sent to?", "Email List", "[email protected]") 

    'Set object variables to outlook application 
    Set OutApptoUser = CreateObject("Outlook.Application") 
    Set OutApptoUser = New Outlook.Application 
    Set OutMailtoUser = OutApptoUser.CreateItem(0) 

    'Send email to user 
    With DestwbtoUser 
     With OutMailtoUser 
      .To = strEmailtoUser 
      .Subject = "User Rating" 
      .Body = "The user rated the application" 
     End With 
     .Close savechanges:=False 
    End With 

End Sub 
+0

正確にエラーの原因となっているライン?また、 'OutApptoUser'は行の中で2回割り当てられます。最初は後でバインドされ、次に早いバインディングで割り当てられます。 1つを選び、他のものを捨てなさい。 –

答えて

0

Outlookを使用せずにVBAから電子メールを送信する場合は、BLATを使用できます。 blatが必要とするコマンドラインを作り、シェルを使ってそれを蹴飛ばす。

詳細情報ここに...

http://www.blat.net/

+0

設定方法を知りましたが、魅力的に機能しました!ありがとうございました。 – AVI

+0

問題はありません、楽しんでください! –

関連する問題