아웃룩 주소록의 성명 표시 방법과 이메일 표시 이름 필드를 한꺼번에 수정해 주는 매크로입니다.
성명 표시 방법과
이메일 표시 방법이 다음과 같이 일괄 변경됩니다.
- 영문 이름인 경우: 성, 이름 (회사명) / 성, 이름 (이메일주소)
- 한글 이름인 경우: 성이름 (회사명) / 성이름 (이메일주소)
아래는 변경된 예입니다. (이미지를 클릭하면 크게 보임)
실행 방법은 다음과 같습니다.
아웃룩(2007기준) 메뉴의 [도구]-[매크로]-[매크로]로 가시거나, Alt+F8을 누르시면 매크로 추가 및 실행 창이 아래와 같이 나옵니다.
새로운 매크로 이름을 '주소록표시방법변경'이라고 입력한 뒤 '편집'을 클릭하고, 아래의 코드를 복사해 넣으면 됩니다.
복사해 넣을 코드 보기..
Sub 주소록표시방법변경()
Dim objOL As Outlook.Application
Dim objNS As Outlook.NameSpace
Dim objContact As Outlook.ContactItem
Dim objItems As Outlook.Items
Dim objContactsFolder As Outlook.MAPIFolder
Dim obj As Object
Dim strFirstName As String
Dim strLastName As String
Dim strName As String
On Error Resume Next
Set objOL = CreateObject("Outlook.Application")
Set objNS = objOL.GetNamespace("MAPI")
Set objContactsFolder = objNS.GetDefaultFolder(olFolderContacts)
Set objItems = objContactsFolder.Items
For Each obj In objItems
'Test for contact and not distribution list
If obj.Class = olContact Then
Set objContact = obj
With objContact
strFirstName = .FirstName
strLastName = .LastName
If (Asc(Left(strFirstName, 1)) >= 65 And Asc(Left(strFirstName, 1))) Then
strName = strLastName + ", " + strFirstName
Else
strName = strLastName + strFirstName
End If
.FileAs = strName + IIf(.CompanyName <> "", " (" + .CompanyName + ") ", "")
If (.Email1Address <> "" And strName <> "") Then
.Email1DisplayName = strName + " (" + .Email1Address + ")"
End If
If (.Email2Address <> "" And strName <> "") Then
.Email2DisplayName = strName + " (" + .Email2Address + ")"
End If
If (.Email3Address <> "" And strName <> "") Then
.Email3DisplayName = strName + " (" + .Email3Address + ")"
End If
.Save
End With
End If
Err.Clear
Next
Set objOL = Nothing
Set objNS = Nothing
Set obj = Nothing
Set objContact = Nothing
Set objItems = Nothing
Set objContactsFolder = Nothing
End Sub
참고로 위 코드를 실행하기 위해서는 메뉴의 [도구]-[매크로]-[보안]을 열어 '모든 매크로에 대해 경고 표시' 또는 그 이하의 보안 설정이 되어 있어야 합니다.
이 매크로는 수정본이며
원본은 이곳에서 가져왔습니다.
이 수정 본이 원본과 다른 점은 '이메일 표시 이름'까지 일괄 변경해 준다는 점입니다.
댓글을 달아 주세요
감사합니다. 덕분에 깔끔해 졌어요^^
하핫, 뿌듯하네요. 저도 고맙습니다~^^
왜 전 실행할 수 없다고 나오는데요
어떻게 해야 하나요?
매크로 보안도 낮추엇는데요...
흠...
편집을 클릭해서 나오는 창에 적혀 있는 기본 코드를 지우시고, 위 글의 코드를 넣으셨나요?
그리고, 매크로 이름도 '주소록표시방법변경'이라고 정확히 적으셨나요?
그리고, '실행' 버튼을 클릭했을 때 오류가 나는 것이 맞나요?~
아직 해결 못하셨다면 위 질문에 대해 답변을 부탁 드립니다.
덕분에 깔끔하게 정리했네요. 고맙습니다.
네, 유용하게 사용하셨다니 저도 기쁩니다.
original code 제작자에게도 감사 드립니다. ^^
웹 검색중에 ucandoit님의 블로그까지 오게되었습니다. 도저히 방법이 없어서요;;

회사의 메일도메인이 전체가 변경이 되었는데요?
기존 아웃룩 주소에 있던 메일주소록을 아래와 같이 일괄 변경하는 방법이 궁금합니다
aaa@aaa.com -> aaa@bbb.com
bbb@aaa.com -> bbb@bbb.com
위와 같이 바꾸는 매크로도 가능한가요?
네, 물론 가능합니다.
Basic 문법을 조금 아신다면 위 스크립트를 조금 수정하셔서 원하시는 용도로 사용하실 수 있겠습니다.
...그런데, 주소를 일괄 변경해야 할 정도로 규모가 있는 회사라면, 전산팀에서 이런 정도 지원은 해 주어야 하지 않을까하는 생각도 듭니다.
거래처에서도 기존 메일 주소를 다 저장해 놓고 있을텐데...^^;
전산팀에 기존 메일 주소로 오는 메일을 새로운 메일 주소로 자동 전달되도록 요청하시고 아울러 아웃룩 변환 매크로도 요청하시면 어떠실런지요?~
정 방법이 없으시면 제게 메일 주세요.~