Conseclusie
Gebruiker
- Lid geworden
- 14 feb 2012
- Berichten
- 358
Hallo,
Ik heb onderstaande macro eens van het web geplukt.
Deze trekt de hele Outlook-database van mijn organisatie leeg, zodat ik een tabel heb met daarin verschillende outlook-items (Naam, Email etc...)
Het werkte altijd als een zonnetje, totdat we over zijn gegaan op windows 10.
Nu verschijnt bij de regel
de (wat vage) foutmelding "Fout 287 tijdens uitvoering: Door de toepassing of door object gedefinieerde fout"
Het lijkt dus fout te gaan bij de eigenschap AddressEntries; maar mijn VBA-kennis reikt niet ver genoeg om de precieze oorzaak te kunnen achterhalen.
De volledige macro (met daarin ook het adres van de bron):
Ik heb onderstaande macro eens van het web geplukt.
Deze trekt de hele Outlook-database van mijn organisatie leeg, zodat ik een tabel heb met daarin verschillende outlook-items (Naam, Email etc...)
Het werkte altijd als een zonnetje, totdat we over zijn gegaan op windows 10.
Nu verschijnt bij de regel
Code:
For Each olAE In olAL.AddressEntries
Het lijkt dus fout te gaan bij de eigenschap AddressEntries; maar mijn VBA-kennis reikt niet ver genoeg om de precieze oorzaak te kunnen achterhalen.
De volledige macro (met daarin ook het adres van de bron):
Code:
Sub Network_Users()
'http://itknowledgeexchange.techtarget.com/beyond-excel/getting-names-from-outlook-into-excel/
Dim olA As Object 'Outlook.Application Start Outlook (OL)
Dim olNS As Object 'Namespace OL identifiers context
Dim olAL As Object 'AddressList An OL address list
Dim olAE As Object 'AddressEntry An Address List entry
Dim lo As ListObject 'An Excel Table
On Err GoTo ErrHandler
'Create a ListObject/Table in the spreadsheet
With ActiveSheet
.Cells.ClearContents 'Clear worksheet completely
.Cells.ClearFormats 'Clear formats as well
[A1:H1] = Array("Names", "Email", "AAnr", "Afdeling", "JobTitle", "Straat", "Voornaam", "Achternaam") 'Add a column headings
Set lo = .ListObjects.Add(1, [A1].CurrentRegion, , xlYes)
lo.Name = "Names"""
End With
'Open Outlook, set context, open "All Users" address list
Set olA = CreateObject("Outlook.Application")
Set olNS = olA.GetNamespace("MAPI")
Set olAL = olNS.AddressLists("All Users")
'Add each address entry name to the Excel Table
Application.ScreenUpdating = False
For Each olAE In olAL.AddressEntries
With lo.ListRows.Add
.Range(1) = olAE.Name
.Range(2) = olAE.GetExchangeUser.PrimarySmtpAddress
.Range(3) = olAE.GetExchangeUser.Alias
.Range(4) = olAE.GetExchangeUser.Department
.Range(5) = olAE.GetExchangeUser.JobTitle
.Range(6) = olAE.GetExchangeUser.StreetAddress
.Range(7) = olAE.GetExchangeUser.FirstName
.Range(8) = olAE.GetExchangeUser.LastName
End With
Next
Application.StatusBar = False
Application.ScreenUpdating = True
ErrHandler: If Err.Number <> 0 Then MsgBox _
"Network_Users - Error#" & Err.Number & vbCrLf & _
Err.Description, vbCritical, "Error", Err.HelpFile, Err.HelpContext
On Error GoTo 0
End Sub