首页 > 解决方案 > 将 Outlook 365 与 VB6 一起使用

问题描述

我们已切换到 Office 365 / Outlook。我们在 VB6 中有一个旧版应用程序,它在以前版本的 Outlook 中运行良好。但是现在我们在 VB6 中遇到了发送每日报告的自动电子邮件的问题。有人可以告诉我以下代码的等价物是什么以及我需要指向什么参考?

            Dim mstrEmailTo         As String                      'email to addresses
            Dim mstrEmailCC         As String                      'email cc addresses
            mstrEmailTo = Text1.Text
            mstrEmailCC = "TestEmail"

            Dim oApp As Outlook.Application
            Dim oCB As Office.CommandBar
            Dim oCBTools As Office.CommandBarPopup
            Dim oCBSelect As Office.CommandBarButton
            Dim oInsp As Outlook.Inspector
            Dim oCont As Outlook.MailItem
            Set oApp = New Outlook.Application
            Dim oInspLeft As Integer
            Dim oContTo As String
            Dim oContCC As String


            Set oCont = oApp.CreateItem(olMailItem)
            If mstrEmailTo <> "" Then
                'objRecipients.AddMultiple mstrEmailTo, CdoTo
                oCont.To = mstrEmailTo
            End If
            If mstrEmailCC <> "" Then
                'objRecipients.AddMultiple mstrEmailCC, CdoCc
                oCont.CC = mstrEmailCC
            End If

            'Set objNewMsg.Recipients = mobjSession.AddressBook(objRecipients, "Select recipients for the Daily report ...", , True, 2)
            Set oInsp = oCont.GetInspector
            oInsp.Display vbModeless
            oInsp.WindowState = olNormalWindow
            oInspLeft = oInsp.Left
            oInsp.Left = -10000 'Set the Inspector off screen.
                                'Set to 250 to return it to viewable location

            Set oCB = oInsp.CommandBars("Menu Bar")
            Set oCBTools = oCB.Controls("&Tools")
            Set oCBSelect = oCBTools.Controls("Address &Book...")


            oCBSelect.Execute
            oContTo = oCont.To
            oContCC = oCont.CC
            oCont.Close olDiscard
            oInsp.Left = oInspLeft
            Set oCont = Nothing
            Set oCBSelect = Nothing
            Set oCBTools = Nothing
            Set oCB = Nothing
            Set oApp = Nothing`

标签: outlookvb6office365

解决方案


您无需模拟按钮单击即可显示地址簿。您需要为此使用SelectNamesDialog对象 - 请参阅https://docs.microsoft.com/en-us/office/vba/api/outlook.selectnamesdialog


推荐阅读