- ベストアンサー
Outlook2003 VBAで迷惑メールを一括削除する方法
- Outlook2003で迷惑メールフォルダ内のメールを一括削除するマクロを作成したい。現在の方法では1件ずつ削除する必要があり、処理が重くなるため効率的な方法を知りたい。
- Outlook2003のVBAを使用して、個人用フォルダ内の「迷惑メール」と「迷惑メールフォルダ」にあるメールを一括で削除する方法を知りたい。現在の方法ではCtrl+Aで全選択し、Deleteキーで削除する手順を踏んでいるが、処理が重くなるため効率的な方法を探している。
- Outlook2003 VBAで迷惑メールフォルダ内のメールを一括削除するマクロを作成したいが、現在の方法では1件ずつ削除する必要があり、数百件の処理が非常に重くなる。Ctrl+Aで全選択し、Deleteキーで削除する方法を知りたい。初めてOutlook2003 VBAを使用するため、基本を教えて欲しい。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
私も決して詳しくはないのですが、 なかなか回答がつかないようですので、とりあえず判ることだけ…。 1.Displayは不要 >myFolder.Items(1).Display 'もしかして、これがいけない? とありますが、おっしゃるとおりアイテムを表示する必要はありません。 これを削るだけでかなり違うのではないかと思います。 2.削除の仕方 削除したメールを[削除済みアイテム]に残す必要がなければ、 DeleteではなくRemoveを使って完全に削除した方が早いようです。 複数のアイテムを一括削除する方法については、 (存在するかもしれませんが)わかりませんでした。 ----------------------↓ ココカラ ↓---------------------- Sub Sample() Set myolApp = CreateObject("Outlook.Application") Set myNamespace = myolApp.GetNamespace("MAPI") With myNamespace.Folders("個人用フォルダ") Set myFolder1 = .Folders("迷惑メール") Set myFolder2 = .Folders("迷惑メールフォルダ") End With Total = myFolder1.Items.Count For i = 1 To Total myFolder1.Items.Remove 1 Next i Total = myFolder2.Items.Count For i = 1 To Total myFolder2.Items.Remove 1 Next i End Sub ----------------------↑ ココマデ ↑---------------------- 追記:ところで、cnt変数は宣言だけして使ってないようですが??
お礼
回答有難うございました。 このような回答を希望していたので、大変助かりました。 >myFolder.Items(1).Display の部分は質問中に気がついたので、後で外してみたところ、随分処理が早くなりました。 また、「Remove」の件も、質問しそびれていたため、有難かったです。「Remove」の一語の違いですが、なかなかヘルプやネット上で検索しても見つからないものですね。こういうのはメソッドっていうのでしょうか?何かメソッド一覧のようなものがあればいいのですが。。 追記でご指摘頂いたcnt変数は、確かに不要です。当初、「○件削除しました」というように考えていたのですが、簡素化するためにやめにしました。(削除しそびれていたようです。) おおむね、問題は解決しているのですが、その他、何か有用な情報が得られるかもしれないので、少しばかり、質問を継続させていただきます。