• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Outlook2003 VBA マクロで迷惑フォルダ内のメールを一括削除したい)

Outlook2003 VBAで迷惑メールを一括削除する方法

このQ&Aのポイント
  • Outlook2003で迷惑メールフォルダ内のメールを一括削除するマクロを作成したい。現在の方法では1件ずつ削除する必要があり、処理が重くなるため効率的な方法を知りたい。
  • Outlook2003のVBAを使用して、個人用フォルダ内の「迷惑メール」と「迷惑メールフォルダ」にあるメールを一括で削除する方法を知りたい。現在の方法ではCtrl+Aで全選択し、Deleteキーで削除する手順を踏んでいるが、処理が重くなるため効率的な方法を探している。
  • Outlook2003 VBAで迷惑メールフォルダ内のメールを一括削除するマクロを作成したいが、現在の方法では1件ずつ削除する必要があり、数百件の処理が非常に重くなる。Ctrl+Aで全選択し、Deleteキーで削除する方法を知りたい。初めてOutlook2003 VBAを使用するため、基本を教えて欲しい。

質問者が選んだベストアンサー

  • ベストアンサー
noname#52504
noname#52504
回答No.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変数は宣言だけして使ってないようですが??

wdwdwd
質問者

お礼

回答有難うございました。 このような回答を希望していたので、大変助かりました。 >myFolder.Items(1).Display の部分は質問中に気がついたので、後で外してみたところ、随分処理が早くなりました。 また、「Remove」の件も、質問しそびれていたため、有難かったです。「Remove」の一語の違いですが、なかなかヘルプやネット上で検索しても見つからないものですね。こういうのはメソッドっていうのでしょうか?何かメソッド一覧のようなものがあればいいのですが。。 追記でご指摘頂いたcnt変数は、確かに不要です。当初、「○件削除しました」というように考えていたのですが、簡素化するためにやめにしました。(削除しそびれていたようです。) おおむね、問題は解決しているのですが、その他、何か有用な情報が得られるかもしれないので、少しばかり、質問を継続させていただきます。

関連するQ&A