Thanks Calvin,
This is what I ended up with ...
Option Explicit
Sub GetAddyBookInfo()
Application.ScreenUpdating = False
Dim ol As Outlook.Application, NS As Outlook.NameSpace, Adl As Outlook.AddressList, _
AdlE As Outlook.AddressEntry, CL As Outlook.MAPIFolder, itmCl As Outlook.Items, _
Itm As Outlook.ContactItem, n As Long, i As Long, newSht As Worksheet, _
yesno As VbMsgBoxResult, ow As Boolean
ow = False: n = 2
On Error GoTo NoSheet
Sheets("Email Info").Activate
yesno = MsgBox("You already have an Email sheet. Overwrite?", vbYesNoCancel, "Overwrite?")
Select Case yesno
Case vbYes
ow = True
Case vbNo
ow = False
Case vbCancel
GoTo endMe
End Select
GoTo YesSheet
NoSheet:
Set newSht = Worksheets.Add(before:=Sheets(Sheets.Count))
ActiveSheet.Name = "Email Info"
YesSheet:
Set ol = CreateObject("Outlook.Application")
ol.Session.Logon
Set NS = ol.GetNamespace("MAPI") 'Outlook Contact's
Set CL = NS.GetDefaultFolder(olFolderContacts)
Set itmCl = CL.Items
With Sheets("Email Info")
If ow = True Then .Cells.Delete 'Overwrite
With .[A1]: .Value = "Last Name": .Font.Bold = True: .Interior.ColorIndex = 4: End With
With .[B1]: .Value = "First Name": .Font.Bold = True: .Interior.ColorIndex = 4: End With
With .[C1]: .Value = "Full Name": .Font.Bold = True: .Interior.ColorIndex = 4: End With
With .[D1]: .Value = "Email Address": .Font.Bold = True: .Interior.ColorIndex = 4: End With
With .[E1]: .Value = "Phone Number": .Font.Bold = True: .Interior.ColorIndex = 4: End With
For Each Itm In itmCl
.Cells(n, 1).Value = Itm.LastName
.Cells(n, 2).Value = Itm.FirstName
.Cells(n, 3).Value = Itm.FullName
.Cells(n, 4).Value = Itm.Email1Address
.Cells(n, 5).Value = Itm.PrimaryTelephoneNumber
n = n + 1
Next
For i = .Range("A65536").End(xlUp).Row To 2 Step -1 '** Clean up
If .Range("A" & i).Value = "" Then .Range("A" & i).EntireRow.Delete
Next i
.Activate
If MsgBox("Would you like to Sort by Last Name?", vbYesNo, "Sort?") = vbYes Then _
.Cells.Sort Key1:=.Range("A2"), Order1:=xlAscending, Header:=xlGuess
.Cells.EntireColumn.AutoFit
End With
ol.Session.Logoff
endMe:
Set ol = Nothing: Set NS = Nothing: Set Adl = Nothing: Set AdlE = Nothing
Set CL = Nothing: Set itmCl = Nothing: Set Itm = Nothing
Application.ScreenUpdating = True
End Sub