Kontakte in Outlook importieren (.vcf)
Ich habe mehrere Kontakte als .vcf Datei, aber Outlook kann nur immer einen Kontakten importieren, wie kann ich alle auf einmal importieren?
1. Ordner erstellen z.B. auf C: den Ordner XYZ. (c:\XYZ)
2. Kopieren Sie alle ihre .vcf Files in diesen Ordner.
3. Öffnen Sie Outlook und gehen Sie links oben auf Datei -> Optionen -> Trust Center -> Einstellungen für das Trust Center -> Makroeinstellungen.
4. Stellen sie um auf “Alle Makros Aktivieren” und schließen Sie mit “2x ok”. (Alte Einstellung merken!)
5. Drücken Sie ALT+F11. Es öffnet sich der VBA Editor.
6. Gehen Sie zu Extras -> Verweise und wählen Sie Microsoft Scripting Runtime und Windows Script Host Object Model aus. Danach OK.
7. Gehen Sie zu Einfügen -> Modul und kopieren Sie nachfolgenden Code in das offene Fenster des leeren Modules. Danach drücken Sie STRG+S.
Option Explicit
Public Sub ImportAlleVCards()
Dim sRoot As String
sRoot = "C:\XYZ" ' <-- HIER DEN PFAD ANPASSEN WENN NÖTIG
If Dir(sRoot, vbDirectory) = "" Then
MsgBox "Ordner nicht gefunden: " & sRoot, vbExclamation
Exit Sub
End If
On Error GoTo ErrHandler
Dim cnt As Long
cnt = ImportVcfAusOrdner(sRoot)
MsgBox cnt & " vCard(s) importiert.", vbInformation
Exit Sub
ErrHandler:
MsgBox "Fehler: " & Err.Number & " - " & Err.Description, vbCritical
End Sub
Private Function ImportVcfAusOrdner(ByVal sPath As String) As Long
Dim fso As Object, folder As Object, file As Object, subf As Object
Dim ns As Outlook.NameSpace
Dim itm As Object
Dim count As Long
Set fso = CreateObject("Scripting.FileSystemObject")
Set folder = fso.GetFolder(sPath)
Set ns = Application.Session ' wir sind in Outlook
' Dateien im aktuellen Ordner
For Each file In folder.Files
If LCase$(fso.GetExtensionName(file)) = "vcf" Then
On Error Resume Next
Set itm = ns.OpenSharedItem(file.Path) ' öffnet .vcf als Kontakt
If Err.Number <> 0 Then
Debug.Print "VCF konnte nicht geöffnet werden: " & file.Path & " | " & Err.Description
Err.Clear
Else
If TypeOf itm Is Outlook.ContactItem Then
Dim c As Outlook.ContactItem
Set c = itm
c.Save ' speichert in Standard-Kontakte
count = count + 1
End If
End If
On Error GoTo 0
End If
Next file
' Rekursiv durch Unterordner (ohne Hidden/System)
For Each subf In folder.SubFolders
If ((subf.Attributes And 2) = 0) And ((subf.Attributes And 4) = 0) Then
count = count + ImportVcfAusOrdner(subf.Path)
End If
Next subf
ImportVcfAusOrdner = count
End Function
8. Drücken Sie nun F5 und gehen Sie auf Ausführen um das Makro zu starten.
9. Die vCards werden nun automatisch in Outlook importiert. Warten Sie bis alles importiert ist.
10. Danach gehen Sie, wie in Punkt 3, links oben auf Datei -> Optionen -> Trust Center -> Einstellungen für das Trust Center -> Makroeinstellungen und ändern Sie die Einstellung wieder auf Ihre vorherige.