2017-04-06 9 views
0

私はコードを書くようになりましたが、変数objContactに何を書き込んでフォルダ内の項目連絡先を選択する必要があるのか​​分かりません。CompanyName = "..."のようなOutlookの連絡先のフィルタ

私が試した:

sFilter = "[CompanyName= 'BEIS'" 
Set objContact = objContactsFolder.Items.Find(sFilter) 
objContact.Delete 

を現在の私のコードは以下のようになります。

Sub ChangeCompanyName() 

    Dim objContactsFolder 'As Outlook.MAPIFolder 
    Dim objContacts 'As Outlook.Items 
    Dim strCo 'As String 
    Dim objContact 'As Object 
    Dim iCount 'As Integer 

    ' Set 

    Set objOutlook = CreateObject("Outlook.Application") 
    Set objNameS = objOutlook.GetNamespace("MAPI") 
    Set objContactsFolder = objNameS.GetDefaultFolder(olContactItem) 
    Set objContacts = objContactsFolder.Items 

    ' Delete Contact if company names = strCo 

    strCo = "BEIS" 

    Set objContact = ??? 

    For Each objContact In objContacts 
     If TypeName(objContact) = "ContactItem" Then 
     If objContact.CompanyName = strCo Then 
      objContact.Delete 
     End If 
     End If 
    Next 

    ' Clean up 

    Set objContact = Nothing 
    Set objContacts = Nothing 
    Set objContactsFolder = Nothing 

End Sub 
+0

だから問題は何ですか?コードをステップ実行すると、コードのどの行が失敗したり予期せず動作しますか? –

+0

問題は、フォルダ内のアイテムの連絡先を選択するためにobjContactに書き込む必要があることがわかりません。これを試しました: 'sFilter =" [CompanyName = 'BEIS' "Set objContact = objContactsFolder.Items。 –

+0

あなたはブレークポイントを入れてコードをステップインしましたか? –

答えて

0

あなたのフィルタが間違っています。あなたは欠けている]]:

sFilter = "[CompanyName] = 'BEIS'" 
+0

私のスクリプトをNotepad ++で編集していますが、 "ブレークポイント"がないと思います。 ] "しかし、それは何も起こっていない同じ結果です。私は代替を見つけました!私はなぜExcelの/ Outlok VBAで私のスクリプトが動作しているので、私はマクロを実行するためにこのコマンドを使用するつもりです:' Set objExcel = CreateObject ( "Excel.Application") oShell = CreateObject( "WScript.Shell")を設定する wb = objExcel.Workbooks.Open( "C:\ TEST \ Deleter.xls")を設定する objExcel.Run "'Deleter.xls 「!Deleter」 wb.Close objExcel.Quit oShell.Run "taskkill/im EXCEL.exe"、True True –

+0

しかし、Notepad ++からコードを実行していませんか?どちらのOfficeアプリケーションでもVBAから実行する場合は、ブレークポイントを設定できます。 –

+0

今、VBAでスクリプトの一部を実行しています(連絡先を削除する部分とスクリプトが動作しています).VBSの他の部分も実行しています。 それは私のVBSのように見えます: 'Run Macro" Deleter "は、FinishedからCompanyName =" BEIS "を持つ古い連絡先を削除します。新しい連絡先を追加するためのVBSコマンドを実行します。つまり、私はブレークポイントを持つ必要はありません。 –

関連する問題