Hallo zusammen,
ich schon wieder.
Nachdem ich mein Makro überredet habe, mich selektieren zu lassen, trat natürlich prompt das nächste Problem auf.
Ich habe mir eine Funktion zur Selektion aus meiner ListBox geschrieben. Dabei soll eine Schleife beendet werden, wenn ein Doppelklick in der Box erfolgt.
Im Augenblick sieht mein Script so aus:
Code:
Option Explicit
Dim objOutlook As Outlook.Application
Dim Namensraum As NameSpace ' Den aktuellen Arbeitsbereich von Outlook mit dem Namespace festlegen
Dim MailFolder As mapiFolder ' Der MAPI-Folder legt den Ordner fest (z. B. Kontakte)
Dim objItems As Items ' Items sind die einzelnen Einträge
Dim zaehler As Integer ' Zähler zum Füllen der Listboxen
Dim AktUser As String ' Speicherung des Usernamens - vom Profil abhängig
Dim Eintrag As String
Dim Auswahl() As Single
Dim i As Integer Private Sub Kontakte_Lesen()
' Das erste Auslesen kann ein bissl dauern :-)
Dim Eintrag, Vorname, Nachname As String
MousePointer = 0 '11 'vbHourglass
Set objItems = MailFolder.Items ' Items initialisieren
objItems.Sort "[LastName]", False ' Einträge nach dem Nachnamen sortieren lassen
For zaehler = 1 To objItems.Count ' Alle Items in die Listbox schreiben
IstKontakt.AddItem objItems(zaehler)
Next zaehler
MousePointer = 0 ' vbDefault ' Mousepointer wieder "normal" einstellen
End Sub
Private Sub Kontakte_Auswaehlen(Auswahl)
Dim i As Integer
Dim Empfaenger As String
i = 1
IstKontakt.Cancel = False
With IstKontakt
Do Until IstKontakt.Cancel
Empfaenger = IstKontakt.Selected(.ListIndex)
Auswahl(i) = Empfaenger
i = i + 1
Loop
End With
End Sub
Private Sub UserForm_Unload(Cancel As Integer)
' alle Objekte abschließen
Set objItems = Nothing
Set MailFolder = Nothing
Set Namensraum = Nothing
Set objOutlook = Nothing
End Sub
Private Sub IstKontakt_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
With IstKontakt
IstKontakt.Cancel = True
End With
End Sub
Private Sub UserForm_Initialize()
' UserForm Initialisieren
Set objOutlook = New Outlook.Application ' Outlook initialisieren
Set Namensraum = objOutlook.GetNamespace("MAPI") ' Namespace initialisieren
AktUser = Namensraum.CurrentUser ' Aktueller User in Outlook ermitteln
Set MailFolder = Namensraum.GetDefaultFolder(olFolderContacts) ' Ordner setzen, in unserem Fall Contacts
Kontakte_Lesen
Kontakte_Auswaehlen
End Sub
Lasse ich das Makro probeweise ablaufen, so erhalte ich folgende Fehlermeldung:
Code:
Laufzeitfehler'-2147352573(80020003)':
Eigenschaft Cancel konnte nicht gesetzt werden. Member not found.
Kann mir jemand sagen, woran es liegt und wie ich es korrigieren kann?
Viele Grüße,
CEROG
------------------
Inoffizielle Linux-Hilfeseite http://linux.cad.de