高分求解outlook問題


想做一個功能,在VB中調用Outlook功能,新建並彈出outlook窗口,實現如下:
Dim OutLooks As Outlook.Application
Private Sub Command1_Click()
        Call send_mail("Then   IA   CODE   is   going   to   run   out! ")
End Sub

Public Function OutLookMailto(OutLooks As Outlook.Application, _
                ByVal strSubject As String, _
                ByVal strText As String, colAddrList As Collection, _
                colAttachments As Collection) As Boolean
        Dim Mail     As MailItem
        Dim strTemp
        Set OutLooks = New Outlook.Application
        Set Mail = OutLooks.CreateItem(olMailItem)           '設定要一個新的Mail   Item
        With Mail
        For Each strTemp In colAddrList
                .Recipients.Add strTemp       '新增收件人
        Next
        '           For   Each   strTemp   In   colAttachments
        '                   .Attachments.Add   strTemp       'Attach的File
        '           Next
        .Subject = strSubject           '主旨
        .Body = strText                       '內容
        .Save                                       '存入寄件夾
        .Display
'        .Send                                       '出信件
        
        End With
        Set Mail = Nothing
        OutLookMailto = True
        Exit Function
Errh:
  OutLookMailto = False
End Function

Private Sub send_mail(ByVal strSubject As String)
        Dim colAddrs As New Collection
        Dim colAttachs As New Collection
        Dim strBody As String
        Dim strText As String
        Dim blnSendOK As Boolean
        Dim SQL As String
        '       SQL   =   "select   email_address   from   sftm40   where   email_group   =   'ME ' "
        '       Set   RS   =   DB.Execute(SQL)
        '   strBody   =   "您好: "   &   vbCrLf   &   "   您看到這封信時表示已成功傳送 "
        'While   Not   RS.EOF
        colAddrs.Add "huajun.zhou@arima.com.cn "     ' "jianhong.wu@arima.com.cn "   'Trim(RS.Fields( "email_address "))
        '       RS.MoveNext
        'Wend
        'colAttachs.Add   mFile
        colAttachs.Add " "
        strText = "   The   has   already   run   out,   please   send   the   new   range   to   Arima   S/W   team.& " _
                        & "   Thank   you   very   much!   This   mail   for   test   program.   "
        blnSendOK = OutLookMailto(OutLooks, strSubject, strText, colAddrs, colAttachs)
        If blnSendOK = True Then
                MsgBox "彈出窗口成功! ", vbInformation
        Else
                MsgBox "彈出窗口未成功! ", vbInformation
        End If
        'End
End Sub


但有一個問題未能解決,在Outlook已打開的情況下,執行Set OutLooks = New Outlook.Application這句會報錯(ActiveX component can't create object),這個問題如何解決?

12 个解决方案

#1


沒人會嗎?看來VB真沒人用了。。。

#2


該回復於2012-06-21 11:01:41被版主刪除

#3


該回復於2012-06-21 11:01:57被版主刪除

#4


該回復於2012-05-31 08:55:19被版主刪除

#5


我的沒問題啊,你引用的是哪個OUTLOOK庫

#6


引用 5 樓  的回復:
我的沒問題啊,你引用的是哪個OUTLOOK庫


我引用的是microsoft Outlook 12.0 Object Library

#7


microsoft Outlook 12.0 Object Library的話,那就是Outlook2007咯.

這個版本真的很無愛唉. 功能和02基本一樣, 原來的問題一個沒解決, 速度倒是慢了一大截. 

不好意思, 變成吐槽了, 主要是這個編程用的不多, 不像Excel方面做的比較多. 所以幫不上忙咯.

#8


繼續求助,各位高人快點現身吧

#9


但有一個問題未能解決,在Outlook已打開的情況下,執行Set OutLooks = New Outlook.Application這句會報錯(ActiveX component can't create object),這個問題如何解決?
=====================================================================
先判斷一下OutLook是否打開,如果打開則使用GetObject()返回其實例即可。

#10


引用 9 樓  的回復:
但有一個問題未能解決,在Outlook已打開的情況下,執行Set OutLooks = New Outlook.Application這句會報錯(ActiveX component can't create object),這個問題如何解決?
=====================================================================
先判斷一下……


謝謝你的回復,能否寫幾行代碼參考一下?萬分感謝!

#11


本帖最后由 bcrun 於 2012-06-21 11:02:58 編輯
  On Error Resume Next

    outlookObj = GetObject(, "Outlook.Application")
    If Err.Number = 0 Then
        MsgBox("Outlook is running")
    Else
        MsgBox("Outlook is not running")
        Set outlookObj = New Outlook.Application
    End If
    Err.Clear()
    .........
    outlookObj = Nothing

沒測試,思路應該是這樣

#12


引用 11 樓  的回復:
    On Error Resume Next 
  

    outlookObj = GetObject(, "Outlook.Application")
    If Err.Number = 0 Then
        MsgBox("Outlook is running")
    Else
        MsgBox("Outlook is ……

還是不行啊

注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2021 ITdaan.com