Advertisement
Guest User

Untitled

a guest
Sep 21st, 2017
95
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.39 KB | None | 0 0
  1. Sub Whatever
  2. Dim Ns As Outlook.NameSpace
  3. Dim Contacts As Items
  4. Dim Contact As ContactItem
  5.  
  6. Set Ns = Application.GetNamespace("MAPI")
  7.  
  8. 'use the default folder
  9. Set Contacts = Ns.GetDefaultFolder(olFolderContacts).Items.Restrict("[MessageClass]='IPM.Contact'")
  10.  
  11. 'do whatever
  12. On Error GoTo WTF
  13.  
  14. For Each Item In Contacts
  15. If Item.Class = olContact Then
  16. Set Contact = Item
  17. With Contact
  18. ' Call SetCategories(Contact)
  19. '.MobileTelephoneNumber = FormatTel(.MobileTelephoneNumber)
  20. '.AssistantTelephoneNumber = FormatTel(.AssistantTelephoneNumber)
  21. '.Business2TelephoneNumber = FormatTel(.Business2TelephoneNumber)
  22. '.BusinessFaxNumber = FormatTel(.BusinessFaxNumber)
  23. '.BusinessTelephoneNumber = FormatTel(.BusinessTelephoneNumber)
  24. '.CallbackTelephoneNumber = Format(.CallbackTelephoneNumber)
  25. '.CarTelephoneNumber = FormatTel(.CarTelephoneNumber)
  26. '.CompanyMainTelephoneNumber = FormatTel(.CompanyMainTelephoneNumber)
  27. '.Home2TelephoneNumber = FormatTel(.Home2TelephoneNumber)
  28. '.HomeFaxNumber = FormatTel(.HomeFaxNumber)
  29. '.HomeTelephoneNumber = FormatTel(.HomeTelephoneNumber)
  30. '.OtherFaxNumber = FormatTel(.OtherFaxNumber)
  31. '.OtherTelephoneNumber = FormatTel(.OtherTelephoneNumber)
  32. '.PagerNumber = FormatTel(.PagerNumber)
  33. '.PrimaryTelephoneNumber = FormatTel(.PrimaryTelephoneNumber)
  34. '.RadioTelephoneNumber = FormatTel(.RadioTelephoneNumber)
  35. '.TTYTDDTelephoneNumber = FormatTel(.TTYTDDTelephoneNumber)
  36.  
  37. ' prioritise
  38. PrioritySwitch .MobileTelephoneNumber, .BusinessTelephoneNumber, True
  39. PrioritySwitch .MobileTelephoneNumber, .Business2TelephoneNumber, True
  40. PrioritySwitch .MobileTelephoneNumber, .BusinessFaxNumber, True
  41. PrioritySwitch .MobileTelephoneNumber, .CompanyMainTelephoneNumber, True
  42. PrioritySwitch .MobileTelephoneNumber, .PrimaryTelephoneNumber, True
  43. PrioritySwitch .MobileTelephoneNumber, .AssistantTelephoneNumber, True
  44. PrioritySwitch .MobileTelephoneNumber, .CallbackTelephoneNumber, True
  45. PrioritySwitch .MobileTelephoneNumber, .CarTelephoneNumber, True
  46. PrioritySwitch .MobileTelephoneNumber, .CompanyMainTelephoneNumber, True
  47. PrioritySwitch .MobileTelephoneNumber, .Home2TelephoneNumber, True
  48. PrioritySwitch .MobileTelephoneNumber, .HomeTelephoneNumber, True
  49. PrioritySwitch .MobileTelephoneNumber, .OtherTelephoneNumber, True
  50. PrioritySwitch .MobileTelephoneNumber, .PagerNumber, True
  51. PrioritySwitch .MobileTelephoneNumber, .HomeFaxNumber, True
  52. PrioritySwitch .MobileTelephoneNumber, .OtherFaxNumber, True
  53.  
  54. If Not .Saved Then .Save
  55. End With
  56. End If
  57. Next
  58. Exit Sub
  59. WTF:
  60. Debug.Print Contact
  61. End Sub
  62.  
  63. Sub PrioritySwitch(ByRef Tel1 As String, ByRef Tel2 As String, mobileOnly As Boolean)
  64. Dim t1 As String
  65. Dim switchTel As Boolean
  66.  
  67. switchTel = False
  68.  
  69. 'Logic code goes here
  70. switchTel = True
  71.  
  72. If switchTel Then
  73. t1 = Tel1
  74. Tel1 = Tel2
  75. Tel2 = t1
  76. End If
  77. End Sub
  78.  
  79. With Contact
  80. '...
  81. PrioritySwitch .MobileTelephoneNumber, .BusinessTelephoneNumber, True
  82.  
  83. Dim stackVar1 As String
  84. stackVar1 = Contact.MobileTelephoneNumber
  85. Dim stackVar2 As String
  86. stackVar2 = Contact.BusinessTelephoneNumber
  87. PrioritySwitch stackVar1, stackVar2, True
  88. '...and then stackVar1 and stackVar2 disappear...
  89.  
  90. Public Property Let MobileTelephoneNumber(number As String)
  91. 'Frobs whatever Outlook does to store the number.
  92. End Property
  93.  
  94. Public Property Get MobileTelephoneNumber() As String
  95. 'Frobs whatever Outlook does to retrieve the number.
  96. End Property
  97.  
  98. Public Sub PrioritySwitch(target As ContactItem, propertyOne As String, _
  99. propertyTwo As String, mobileOnly As Boolean)
  100. Tel1 = CallByName(target, propertyOne, VbGet)
  101. Tel2 = CallByName(target, propertyTwo, VbGet)
  102.  
  103. '...code that sets switchTel
  104.  
  105. If switchTel Then
  106. CallByName target, propertyOne, VbLet, Tel2
  107. CallByName target, propertyTwo, VbLet, Tel1
  108. End If
  109. End Sub
  110.  
  111. ' prioritise
  112. PrioritySwitch Contact, "MobileTelephoneNumber", "BusinessTelephoneNumber", True
  113. PrioritySwitch Contact, "MobileTelephoneNumber", "Business2TelephoneNumber", True
  114. PrioritySwitch Contact, "MobileTelephoneNumber", "BusinessFaxNumber", True
  115. PrioritySwitch Contact, "MobileTelephoneNumber", "CompanyMainTelephoneNumber", True
  116. ' etc...
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement