1

Outlook で毎日の電子メールの添付ファイルをフォルダーに保存しようとしています。ファイル システム ウォッチャーが添付ファイルを解析および分析できるようにします (データ整合性チェッカーのレポートです)。VBA スクリプトを実行することになっているルールを設定しましたが、私が知る限り実行されません。コードが実際にテキストをファイルに保存することを VB6 で確認したので、Outlook が実際に VBA スクリプトを実行すると、同じことができるはずです。しかし、そうではありません!誰が私が間違っているのかを見ることができますか?

Dim WithEvents objInbox As Outlook.Items

Private Sub Application_Startup()
   Set objInbox = Session.GetDefaultFolder(olFolderInbox).Items
End Sub

Sub SnagAttachment(theItem As MailItem)
    On Error Resume Next
    Dim fnum As Integer
    fnum = FreeFile()
    Open "c:\temp\success.txt" For Output As #fnum
    Print #fnum, "Ran SnagAttachment Successfully"
    Close #fnum
End Sub

ルール ウィザードを使用して [スクリプトの実行] を選択すると、Sub SnagAttachment が選択可能なスクリプトとしてリストされることに注意してください。

4

4 に答える 4

6

On Error Resume Next手順の一番上に置くと、それが機能しているかどうかをどのように知ることができますか? あなたは決して知りません。

ルールの一部として実行する必要があるスクリプトを作成するためのルールは次のとおりです。

Outlook で自動仕訳ウィザードのスクリプトを作成する方法

Microsoft Outlook で着信メッセージを処理する方法 にある警告にも注意してください。

"スクリプトを実行する" ルールは、トラフィックの多いアプリケーションには適していません。ルールの条件を満たすアイテムが多すぎると、Outlook がルールの適用をスキップする可能性があるためです。

于 2011-11-21T18:14:29.883 に答える
2

スクリプトを機能させるには、Outlookのセキュリティ設定を変更する必要があります。[ツール]>[マクロ]>[セキュリティ]に移動し、[すべてのマクロの警告]に変更します。次に、Outlookを再起動します。

お役に立てれば

于 2011-03-28T17:56:58.407 に答える
0

私は同じ問題を経験していましたが、コードにエラーがあると、スクリプトが開始されないように思えます。これは、デバッガーが実行時エラーに対してポップアップする標準の VBA とは対照的です。たとえば、関数の最後にラベルがあり、その後にコロンがありませんでした。これにより、スクリプトがまったく実行されませんでした (この行まで実行してから失敗するのではなく)。すべてのコードをコメントアウトし、msgbox の「hello world」から始めることをお勧めします。コードが実行されていることを確認するためにデバッグするときは、これをコードに残しますが、おそらくメッセージ ボックスを何度も閉じる必要があります。問題がどこにあるかがわかるまで、コード行を繰り返し追加します。

于 2016-07-12T17:30:28.077 に答える
0

正確な問題を切り分けてみてください:

  1. マクロのセキュリティ設定を確認してください。最大で、「すべてのマクロの警告」以下に設定する必要があります。
  2. 単一のテストサブで新しいモジュールを作成してみてください:
    サブ テスト (Outlook.MailItem としてのアイテム)
    メッセージボックス「テスト」
    サブ終了
    
    次に、このサブルーチンを実行する _all_ 個の着信メッセージを唯一のアクションとして処理する新しいルールを設定し、他のすべてのルールを一時的に無効にします。次に、自分自身にメッセージを送信します。結果としてポップアップ ボックスが表示されない場合は、Outlook のインストールに問題があることを示している可能性があります。再インストールするか、MS に直接電話してサポートを依頼してください。
  3. 前のテストが成功した場合は、`Freefile()` の代わりに `Scripting.FileSystemObject` オブジェクトを使用して、ファイルを作成および設定してみてください。これは、ここで遭遇した奇妙なバグがあるかどうかをテストするためのものです。試してみる価値はありますよね?
  4. ルール条件が正しく設定されていることを確認してください。このスクリプトを実行したいすべてのメッセージをドロップするだけの状態では、不具合やスペルミスが発生する可能性があります。
于 2010-10-20T21:52:54.757 に答える