Skip to main content

如何從Outlook中的聯絡人電話號碼中刪除國家代碼?

Author: Kelly Last Modified: 2025-05-12

在聯絡人視窗中,當您點擊電話號碼前的「商務」/「家庭」/「傳真」/「手機」欄位按鈕以啟動「檢查電話號碼」對話框時(如下圖所示),國家代碼將自動添加到電話號碼之前。但有時候國家代碼可能完全不必要,您可能希望從所有電話號碼中刪除它。請嘗試以下解決方案:


從聯絡人的電話號碼中刪除國家代碼

如果您只需要從某個聯絡人的單個電話號碼中刪除國家代碼,可以手動刪除它,步驟如下:

1. 在「個人」(或「聯絡人」)檢視中,點擊「檢視」>「更改檢視」>「電話」。見截圖:

doc-contacts-remove-country-code-1

2. 雙擊打開要刪除國家代碼的聯絡人。

3. 在打開的聯絡人視窗中,從「電話號碼」部分的指定電話欄位中刪除加號和國家代碼,然後點擊「聯繫人」>「保存並關閉」。

doc-contacts-remove-country-code-2

到目前為止,指定的電話號碼中的國家代碼已被刪除,如下所示:

doc-contacts-remove-country-code-4


使用VBA從聯絡人的電話號碼中刪除國家代碼

如果您需要從Outlook中所有聯絡人的所有電話號碼中刪除國家代碼,可以應用VBA輕鬆處理。

1. 在「個人」(或「聯絡人」)檢視中,打開要從所有聯絡人中刪除國家代碼的聯絡人文件夾。

2. 同時按下「Alt」+「F11」鍵以打開「Microsoft Visual Basic for Applications」窗口。

3. 點擊「插入」>「模組」,然後將以下VBA代碼粘貼到新打開的模組腳本中。

VBA:從所有聯絡人的所有電話號碼中刪除國家代碼

Sub FixPhoneFormat()

 Dim oFolder As MAPIFolder
Set oFolder = Application.ActiveExplorer.CurrentFolder

 If Left(UCase(oFolder.DefaultMessageClass), 11) <> "IPM.CONTACT" Then
MsgBox "You need to select a Contacts folder", vbExclamation
Exit Sub
End If

Dim nCounter As Integer
nCounter = 0

Dim oItem
For Each oItem In oFolder.Items
Dim oContact As ContactItem

          If TypeName(oItem) <> "DistListItem" Then
Set oContact = oItem
With oContact
.AssistantTelephoneNumber = FixFormatUSPhone(.AssistantTelephoneNumber)
.Business2TelephoneNumber = FixFormatUSPhone(.Business2TelephoneNumber)
.BusinessFaxNumber = FixFormatUSPhone(.BusinessFaxNumber)
.BusinessTelephoneNumber = FixFormatUSPhone(.BusinessTelephoneNumber)
.CallbackTelephoneNumber = FixFormatUSPhone(.CallbackTelephoneNumber)
.CarTelephoneNumber = FixFormatUSPhone(.CarTelephoneNumber)
.CompanyMainTelephoneNumber = FixFormatUSPhone(.CompanyMainTelephoneNumber)
.Home2TelephoneNumber = FixFormatUSPhone(.Home2TelephoneNumber)
.HomeFaxNumber = FixFormatUSPhone(.HomeFaxNumber)
.HomeTelephoneNumber = FixFormatUSPhone(.HomeTelephoneNumber)
.ISDNNumber = FixFormatUSPhone(.ISDNNumber)
.MobileTelephoneNumber = FixFormatUSPhone(.MobileTelephoneNumber)
.OtherFaxNumber = FixFormatUSPhone(.OtherFaxNumber)
.OtherTelephoneNumber = FixFormatUSPhone(.OtherTelephoneNumber)
.PagerNumber = FixFormatUSPhone(.PagerNumber)
.PrimaryTelephoneNumber = FixFormatUSPhone(.PrimaryTelephoneNumber)
.RadioTelephoneNumber = FixFormatUSPhone(.RadioTelephoneNumber)
.TelexNumber = FixFormatUSPhone(.TelexNumber)
.TTYTDDTelephoneNumber = FixFormatUSPhone(.TTYTDDTelephoneNumber)

.Save

nCounter = nCounter + 1
End With
End If
Next

MsgBox nCounter & " contacts processed.", vbInformation

End Sub

Private Function FixFormatUSPhone(Phone As String) As String

Phone = Trim(Phone)
FixFormatUSPhone = Phone
If Phone = "" Then Exit Function
Dim prefix As String
prefix = Left(Phone, 1)

Do While (prefix = "+" Or prefix = "1")
Phone = Mid(Phone, 3)
prefix = Left(Phone, 1)
Loop

Phone = Replace(Phone, "(", "")
Phone = Replace(Phone, ")", "")
Phone = Replace(Phone, ".", "")
Phone = Replace(Phone, " ", "")
Phone = Replace(Phone, "-", "")

FixFormatUSPhone = Phone

End Function

4. 按下「F5」鍵或點擊「執行」按鈕來執行VBA。

5. 然後會彈出一個對話框,顯示已處理了多少個聯絡人。請點擊「確定」按鈕關閉它。

doc-contacts-remove-country-code-5

現在,您會看到所有聯絡人的各類電話號碼中的國家代碼都已被刪除。見截圖:

doc-contacts-remove-country-code-6


相關文章