none
VB2008開啟outlook問題 RRS feed

  • 問題

  • 我使用VB2008寫一隻程式要存取outlook通訊錄的程式,可是執行後會出現錯誤,請幫忙看如何解決!!謝謝

    ===========以下是程式碼==================

        Sub main()
            Dim App As Excel.Application
            Dim bok As Excel.Workbook
            Dim Sheet1 As Excel.Worksheet
            Dim objOutlook As New Outlook.ApplicationClass() ''***到這一行就出錯了***
            Dim outlkNameSpace As Outlook.NameSpace = objOutlook.GetNamespace("MAPI")
            Dim oDL As Outlook.AddressList = outlkNameSpace.AddressLists.Item("所有使用者")
            Dim y As Integer
            y = 1
            App = New Excel.Application
            ' App.Visible = True
            bok = App.Workbooks.Open("\\tperdfs1\CIS\download_code\OutlookMailAddress.xls")
            Sheet1 = bok.Worksheets(1)

            Sheet1.Activate()
            Sheet1.Rows("1:" & Sheet1.UsedRange.Rows.Count).clearcontents()

            Dim i As Integer
            For i = 1 To oDL.AddressEntries.Count
                If oDL.AddressEntries.Item(i).Address.Length <> 0 Then
                    Sheet1.Range("A" & y).Value = oDL.AddressEntries.Item(i).Address
                    y += 1
                End If
            Next i

            Dim x As Integer

            For x = 1 To Sheet1.UsedRange.Rows.Count
                y = InStrRev(Sheet1.Range("A" & x).Value, "=")
                Sheet1.Range("B" & x).Value = Strings.Right(Sheet1.Range("A" & x).Value, Len(Sheet1.Range("A" & x).Value) - y)
            Next

            bok.Save()
            bok.Close()

        End Sub

    2011年8月5日 上午 03:51

解答

  • 0x800700a4 的意思是 "無法在系統中建立更多的執行緒。"

    問題可能是:

    1. 權限。
    2. 你這支程式是否有重覆執行多個 instance?
    3. 可以先關閉 Outlook 後再跑一次。 


    小朱的技術隨手寫:http://www.dotblogs.com.tw/regionbbs/
    雲端學堂Facebook: http://www.facebook.com/studyazure
    • 已標示為解答 Jayce_Lin 2011年8月9日 上午 07:33
    2011年8月5日 上午 05:45
    版主

所有回覆

  • 改成

     Dim objOutlook As New Outlook.Application
    

    這樣呢?

    先查MSDN文件庫
    再用GOOGLE搜尋
    才到論壇來發問

    這是論壇不是技術支援中心
    沒有人得無償解答你的問題

    在標題或文章註明很急
    不會增加網友回覆速度
    2011年8月5日 上午 04:26
  • 您好

    請確認

    1. 電腦有裝 Microsoft Office 嗎? 您現在安裝的 Office 版本是什麼?

    2. 加入參考的 COM 元件版本,與您電腦安裝的 Office 版本是否相同


    歡迎參觀我的Blog.NET菜鳥自救會
    2011年8月5日 上午 04:49
    版主
  • Hi,還是出現一樣的錯誤

    謝謝。

    2011年8月5日 上午 05:22
  • Hi,

    1.有~office2003

    2.Microsoft.Office.InteropExcel 11版本

    2011年8月5日 上午 05:25
  • 您好

    1. 我在 Windows XP,VS 2008,Office 2003,引用 COM 元件 Microsoft Outlook 11.0 Object Library 與 Microsoft Excel 11.0 Object Library 情況下,可以執行你的代碼

    2. 是自己的電腦還是公司電腦? 登入的使用者是系統管理員身分還是受限制的使用者? 改用系統管理員身分執行程式看看


    歡迎參觀我的Blog.NET菜鳥自救會
    2011年8月5日 上午 05:32
    版主
  • 0x800700a4 的意思是 "無法在系統中建立更多的執行緒。"

    問題可能是:

    1. 權限。
    2. 你這支程式是否有重覆執行多個 instance?
    3. 可以先關閉 Outlook 後再跑一次。 


    小朱的技術隨手寫:http://www.dotblogs.com.tw/regionbbs/
    雲端學堂Facebook: http://www.facebook.com/studyazure
    • 已標示為解答 Jayce_Lin 2011年8月9日 上午 07:33
    2011年8月5日 上午 05:45
    版主
  • MAPI 未必註冊給 Outlook 吧?

    直接呼叫 MAPI 函數吧...

    如果最終的目的是寄信。用 SmtpClient 來寄,


    論壇是網友平等互助 保證解答請至 微軟技術支援服務
    提問時,錯誤情境描述與錯誤訊息很重要,情境描述包含你做了什麼,預期的結果與實際發生的結果。一個最爛的問法範例:「我的電腦電腦怎麼不能開機?」誰知道你家是不是沒電還是你根本找不到電源鈕。
    2011年8月5日 下午 01:06
  • Hello 各位,

    我把outlook重新開啟發現她打不開,於是我去工作管理員把她的執行檔關了(發現有三個,應該是我點三次的原因)

    把第一個執行檔關掉後outlook就可以正常開啓了

    於是我把所有的outlook執行檔都關掉,再執行一次程式就可以run了!!

    感謝大家熱心的回答~~謝謝。

    2011年8月9日 上午 07:33
  • Outlook 2010 可以同時開很多個...
    論壇是網友平等互助 保證解答請至 微軟技術支援服務
    提問時,錯誤情境描述與錯誤訊息很重要,情境描述包含你做了什麼,預期的結果與實際發生的結果。一個最爛的問法範例:「我的電腦電腦怎麼不能開機?」誰知道你家是不是沒電還是你根本找不到電源鈕。
    2011年8月9日 下午 12:07