2010-12-04 7 views
0

は、私は、ユーザーがそれを保存するときに、特定の店舗内に作成される新しいOutlookアイテムを起こししようとしているフォルダに新しい(保存されていない)アイテムを移動します。複数のアカウント、あなたは新しいアイテムを作成(タスクの例はCtrl + Shiftキー+ K)がある。通常ならば、新しいアイテムは、アクティブアカウントのデフォルトのフォルダに作成されます。見通しVBA:

私は新しい項目のインスペクタを傍受し、それを移動しようとしたが、それは効果がありませんでした。ここでは、コードの要旨は、(非新アイテムを避けるためにチェックが省略されている)である。

Dim WithEvents inspectors As Outlook.inspectors 

Private Sub Application_Startup() 
    Set inspectors = Application.inspectors 
End Sub 

Private Sub inspectors_NewInspector(ByVal Inspector As Inspector) 
    Dim item As Object 
    Set item = Inspector.CurrentItem 
    If item Is Nothing Then Exit Sub 
    If item.Class <> olTask Then Exit Sub 
    item.Move Application.GetNamespace("MAPI").GetDefaultFolder(olFolderTasks) 
End Sub 

残念ながら、Moveメソッドは効果がありません。何か案は?

答えて

1

あなたは保存されていない項目を移動することはできません。どのようにアイテムを作成していますか?

は、特定のフォルダに(すなわち、それを作成する)アイテムを追加するために、Items.Add方法を使用します。 CreateItemメソッドを使用している場合は、そのアイテムタイプの既定のフォルダに常に作成されます。

既存の機能を使用してタスクを試行したり作成したりするのではなく、あなたが望むフォルダにタスクを作成するマクロを作成するほうがよいと思いますマクロをツールバーボタンに追加します。または、アイテムを最初に試して保存してから移動することもできます。現在のコードでは、項目をデフォルトのタスクフォルダに移動します。ホーム>新商品>タスクまたはCtrl + Shiftキー+ K:

+0

私の目標は、Outlookで作成したタスクの標準的な方法にフックすることです。 Folders.Addは新しいフォルダを作成します。ユーザーがデータを入力して[保存]をクリックした後、特定のフォルダに新しいタスク項目を作成したいとします。 –

+0

私はItems.Addを意味し、答えを修正します。 – JimmyPena

+0

あなたの提案はマクロを作成するのが最善のように思えます。私は当初それをしましたが、私はデフォルトのタスク作成メカニズムにも取り掛かることを望んでいました。残念ながら、それは可能ではないようです。私は最初のタスク項目を閉じたり、NewInspectorメソッドから新しい項目を作成することができませんでした。 –

関連する問題