Outlook 데이터 중, 메일 다음으로 중요한 데이터가 바로 연락처가 아닐까 생각한다.
물론 메일관련된 업무 진행의 경험이 전무하거나, Outlook을 잘 사용해본적이 없다면 – 특히 웹메일만 지금까지 써보신 분들 – 의미 없겠지만, 만일 지금 Outlook을 사용하고 있다면, 약간이나마 공감이 갈지도…

이번에 마련한 SPH-M480 스마트 폰이 있는데, 여기의 연락처가 Outlook의 데이터와 동기화 된다.
다 좋은데, 전화번호 내에 “-“ 나 “(“, “)” 같은 특수 문자가 있으면 오류가 발생한다.
그렇다고 수많은 연락처의 내용을 일일히 열어서 수정하기는 무리가 있고…

그래서 생각한 방법이 Outlook의 매크로라는 방법을 쓰기로 했다.

지금 테스트해본 곳은 Outlook 2003 으로, Outlook 2003의 메뉴에서  도구 –> 매크로 –> Visual Base Editor 로 들어가서 실행했다.
위의 경로 대로 정상적으로 실행하면 아래 화면과 같은 화면이 뜰 것이다.
saveattachmentsvbeditor_small

저 도구 안의 넓은 코드 넣는 창안에 아래의 코드를 넣는다.

Sub ChangePhoneRule() 
	Dim myolApp As Outlook.Application 
	Dim myNamespace As Outlook.NameSpace 
	Dim contactFolder  As Outlook.MAPIFolder 
	Dim expContacts As Outlook.Explorer
	Dim allItems As Outlook.Items 
	Dim curItem As Object 
	Dim curContact As Outlook.contactItem 
	Dim curPhoneNum As String 
	Set myolApp = CreateObject("Outlook.Application") 
	Set myNamespace = myolApp.GetNamespace("MAPI") 
	Set contactFolder = myNamespace.GetDefaultFolder(olFolderContacts) 
	Set allItems = contactFolder.Items 
	For Each curItem In allItems 
		If (curItem.Class = olContact) Then 
			Set curContact = curItem 
			curPhoneNum = curContact.MobileTelephoneNumber 
			curPhoneNum = Replace(curPhoneNum, "+82", "") 
			curPhoneNum = Replace(curPhoneNum, "(02)", "") 
			curPhoneNum = Replace(curPhoneNum, " ", "") 
			curPhoneNum = Trim(curPhoneNum) 
			curContact.MobileTelephoneNumber = curPhoneNum 
			curContact.Save 
		End If 
	Next 
End Sub

저 안의 내용 중 보면 curContact.MobileTelephoneNumber 라는 줄을 볼 수 있다. 즉 저기서 핸드폰 번호를 가져오고 있다. 그리고 VB 함수 중 문자열 변경하는 Replace 함수를 이용해 변경한 뒤, 다시 해당 속성 값에 값을 넣고 맨 나중에 Save를 불러 주면 된다.

위의 로직은 바로 연락처 폴더 내에 있는 모든 연락처의 내용을 수정하는 작업이다.

각 Property들은 다음 사이트에서 참고하면 된다.
http://msdn.microsoft.com/en-us/library/aa210907(office.11).aspx

728x90

+ Recent posts

728x90