My Outlookマクロが一度に機能してから停止しました。解析すると、マクロは "コンパイルエラー:変数が定義されていません"というエラーをスローします。マクロがそのフォルダが存在することを認識していないようです。私はコードを最小限に抑え、繰り返し可能な問題です。マクロはJUNKやDRAFTSなどの標準フォルダを認識しますが、PROCESSED_FOLDERSは認識しません。私はProcessed_Foldersの名前を変更し、別の名前の新しいフォルダを作成しようとしました。喜びはありません。Outlook vbaが既存のフォルダを見つけられません
フォルダ構造は次のとおりです。
[email protected]
Inbox
Drafts
Sent
Trash
Junk
Processed_Reports
Outbox
Sync Issues1 (This computer only)
SearchFolders
CODE:私はこの問題を解決することができたトニー・Dallimoreによってコメントに
Sub testfforfolder()
Dim olApp As Outlook.Application
Dim objNS As Outlook.NameSpace
Dim olFolder As Outlook.MAPIFolder
Dim msg As Outlook.MailItem
Set olApp = Outlook.Application
Set objNS = olApp.GetNamespace("MAPI")
Set olFolder = objNS.GetDefaultFolder(olFolderInbox)
On Error GoTo xyz
Set olFolder = olFolder.Folders("Processed_Reports")
MsgBox "Folder Exists" ' This line works if I use DRAFTS or JUNK
Exit Sub
xyz:
MsgBox ("Cannot find Folder") ' I get here if I use PROCESSED_REPORTS
Exit Sub
End Sub
セッション名を知らなくても、セッションフォルダを取得する方法は何ですか? (2)あなたのコードはデフォルトの受信トレイを含む "[email protected]"に依存しています。これは本当ですか?私のシステムでは、デフォルトの受信トレイは "outlook data file"にあります。 –
この回答の冒頭に、https://stackoverflow.com/a/12146315/973283には、問題の原因を確認するのに役立つマクロがあります。 'Set oFolder = Session.Folders(" [email protected] ")。フォルダ(" Inbox ")' –
このスクリプトは「フォルダを見つけることができません」というメッセージボックスの警告をスローします。元のスクリプトでは、INBOXという単語が次の行にハイライト表示されていました。olm.Move Inbox.Folders( "Processed_Reports")[注:olmはDIM olm As Outlook.MailItemでした]フォルダ。 –