아웃룩(Outlook)은, 오피스 시스템에 한 패키지로 일단 설치와 사용이 편리하고, 연락처에 관련된 필드가 아주 많이 있음에도 불구하고 필요한 필드만 사용할 수 있기 때문에 유연성이 좋은 것이 특징이다.
또, 윈도우 모바일과 액티브싱크ActiveSync를 통해서 상호 변동사항을 동기화할 수 있기 때문에, 윈모 기반 스마트폰을 계속 사용했던 나는 조금은 불편한 점이 있어도, 옷에 몸을 맞추는 격으로 사용법에 익숙해진 면이 없지 않아 있다.

여러 필드 중 표시 방법 필드는 연락처 목록에서 해당 연락처를 대표로 표현하는 필드로, 검색에도 영향을 미치므로 자신만의 규칙을 가지고 등록해 놓으면 여러모로 편리하다.
성, 이름, 회사 등을 조합한 여러가지 미리 지정된 형식을 가지고 있고, 사용자가 원하는 전혀 다른 문자열로도 세팅이 가능하다.
아이폰 연락처, 구글 주소록 등 다른 여러 형식의 연락처를 동기화하면서 발생하는 문제점은,
- 성, 이름 필드의 구분 유무
- 성, 이름의 순서 및 표기 방법
- 회사명 표기
등을 들 수 있는데, 일례로 아이폰 연락처는 성과 이름을 구분하지만 “성 이름” 형태로 성과 이름 사이에 공백을 넣는 방식을 사용하고 이것을 바꿀 수 있는 옵션이 존재하지 않는 것으로 보인다.
또 구글 주소록은 성, 이름 구분 없이 이름 필드에 둘 다 알아서 넣도록 되어 있다.
어려 기기와 몇 번의 주소록 동기화를 반복하면서 아웃룩의 표시 필드가 “성, 이름” 필드로 바뀌어버리는 불상사가 발생하였다.
표시 방법 필드는 인터넷에서 쉽게 찾을 수 있는 아웃룩 VisualBasic Script를 이용해서 일괄 변경을 할 수 있다.
지금까지 이 곳에 소개된 방식을 계속 사용해 왔었는데, 표시 방법을 성 + 이름 문자열로 대체해 버리기 때문에 성, 이름, 회사 등의 필드가 변경되어도 표시 방법은 바뀌지 않는다는 것이다. 물론 해당 연락처의 이름이 바뀌는 경우는 거의 없기 때문에 적용해도 무방할 것으로 보인다.

아웃룩 연락처 에서 기본으로 미리 지정된 형태를 제공해주는데, 이것의 장점은 앞서 지정한 문자열과 달리 성, 이름, 회사 필드와 연결되있어서 해당 값이 바뀌면 그에 따라 표시 방법 내용이 바뀐다는 것이다. 이 항목을 VB Script로 지정하는 방법을 찾지 못해 수동으로만 지정가능한 줄 알고 있다가 이번에 구글링으로 해당 속성을 찾아서 적용 할 수가 있었다.
출처: http://www.slipstick.com/contacts/fileas.asp
스크립트 설명
만약 영문 연락처라면, “이름 성” 형태로 지정하고
한글 연락처라면 “성이름, 회사” 형태로 지정한다.
영문은 “이름 성, 회사” 형식은 안타깝게도 없었다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 |
Public Sub ChangeFileAs() 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 strFileAs 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 nbsp; With objContact ' Uncomment the strFileAs line for the desired format '영문이면 "이름 "성 형태로 지정 If (Asc(Left(.LastName, 1)) >= 65 And Asc(Left(.FirstName, 1))) Then strFileAs = .FullName '한글이면 "성이름, 회사" 형태로 지정 Else strFileAs = .LastFirstNoSpaceCompany End If '회사명만 있는 연락처 If (.LastName = "" And .FirstName = "") Then strFileAs = .CompanyName End If 'Lastname, Firstname (Company) format 'strFileAs = .FullNameAndCompany 'Firstname Lastname format 'strFileAs = .FullName 'Lastname, Firstname format 'strFileAs = .LastNameAndFirstName 'Company name only 'strFileAs = .CompanyName 'Companyname (Lastname, Firstname) 'strFileAs = .CompanyAndFullName .FileAs = strFileAs .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 |
각 속성별 표시 형태

한글 이름은 “성이름, 회사” 형태가 가장 적합해 보이고
영문은 “이름 성” 이나 “성, 이름” 두 가지 형태 중 더 일반적인 “이름 성”을 선택했다.
기타,
.CompanyAndFullName
.CompanyLastFirstNoSpace
.CompanyLastFirstSpaceOnly
등이 있으나 쉽게 표시 형태는 유추가 가능할 거라고 생각한다.
요약
- 아웃룩 표시 방법을 일괄 변환하는 방법이 있다.
- 기존 방법이 문자열을 치환하는 데 반해 새로운 방법은 속성값을 이용해 다른 필드 값을 반영한다.
끝.
]]>
댓글 남기기