20. marts 2001 - 17:18Der er
8 kommentarer og 1 løsning
VBA: Kontaktpersoner fra outlook
Hvordan kan jeg få alle mine kotaktpersoner (fra en bestemt folder) vist i en listbox? Mine foldere er allerede vist i en ComboBox. Skal benyttes i VBA/MS Word 2K og oplysningerne skal tages fra MS Outlook 2K
Dim myolapp As Outlook.Application Dim myNameSpace As NameSpace Dim myFolder As MAPIFolder Dim Kont As ContactItem
Set myolapp = CreateObject(\"Outlook.Application\") Set myNameSpace = myolapp.GetNamespace(\"MAPI\") Set myFolder = myNameSpace.Folders(1).Folders(\"test\")
For Each Kont In myFolder.Items Debug.Print Kont.FullName \'Debug.Print Kont.Class Next Kont
Set myolapp = Nothing Set myNameSpace = Nothing Set myFolder = Nothing End Sub
Hvor test er kontaktfolderen som er undermappe til rodfolderen
Leder den ikke kun i mine private kontakter? Hvodan får jeg den til at lede i alle kontakter? Jeg vedsender koden:
----------------------------------------------
Dim MyFolder As MAPIFolder Dim MyNameSpace As NameSpace Dim OlApp As Outlook.Application \' Initierer Outlook On Error Resume Next Set MyOutlook = GetObject(, \"Outlook.Application\") If Err.Number <> 0 Then Err.Clear Set MyOutlook = New Outlook.Application If Err.Number <> 0 Then MsgBox \"Kunne ikke få adgang til Outlook.\" & vbNewLine & \"Kontakt din system ansvarlige\", vbCritical, \"Fejl\" Unload frmVent End End If End If On Error GoTo 0
Set OlApp = CreateObject(\"Outlook.Application\") Set MyNameSpace = OlApp.GetNamespace(\"MAPI\")
For A = 1 To MyNameSpace.AddressLists.Count Set UserAddressFolder = MyNameSpace.AddressLists(A) If CStr(frmMain.comAdressList.List(frmMain.comAdressList.ListIndex)) = CStr(UserAddressFolder) Then Set MyFolder = MyNameSpace.Folders(1).Folders(UserAddressFolder) OpretBrugerListe MyFolder End If Next A
Du skal kende hele stien, feks: Set myFolder = myNameSpace.Folders(Folder1).Folders(underfolder).folders(underfolder)
Folder1 skal vel være en public folder...
Angående din kode: Du tester først om der er en der en outlook åben (MyOutlook) og elles åbner du en ny. Herefter åbner du endnu en (Olapp). Du skal vel fortsætte med at bruge MyOutlook.
frmMain.comAdressList.List(frmMain.comAdressList.ListIndex)): Det er nok at skrive: frmMain.comAdressList.List.Value.
Grunden til at du kun kigger i private, tror jeg du finder i Set MyFolder = MyNameSpace.Folders(1).Folders(UserAddressFolder) , hvor 1 netop er indexet for private foldere. Hvad med at kigge lidt på koden der fylder din frmMain.comAdressList?
Håber dette kan hjælpe lidt. Prøv eller evt at sende mig filen.
Hvis du gidder at kigge på det, så har jeg sendt dig normal.dot...
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.