メインコンテンツへスキップ

Outlookで複数の下書きを一度に送信するにはどうすればよいですか?

Author: Xiaoyang Last Modified: 2025-05-23

下書きフォルダーに複数の下書きメッセージがあり、それらを1つずつではなく一度に送信したい場合、Outlookでこの作業を迅速かつ簡単に処理するにはどうすればよいですか?

VBAコードを使用してOutlookで全ての下書きメッセージを一度に送信する


VBAコードを使用してOutlookで全ての下書きメッセージを一度に送信する

次のVBAコードは、下書きフォルダからすべてまたは選択した下書きメールを一度に送信するのに役立ちます。以下の手順を行ってください:

1. ALT + F11 キーを押して、Microsoft Visual Basic for Applications ウィンドウを開きます。

2. 次に、挿入 > モジュール をクリックし、以下のコードをコピーして開かれた空白のモジュールに貼り付けます。スクリーンショットをご覧ください:

VBAコード: Outlookで全ての下書きメールを一度に送信する:

Sub SendAllDraftEmails()
Dim xAccount As Account
Dim xDraftFld As Folder
Dim xItemCount As Integer
Dim xCount As Integer
Dim xDraftsItems As Outlook.Items
Dim xPromptStr As String
Dim xYesOrNo As Integer
Dim i As Long
Dim xCurFld As Folder
Dim xTmpFld As Folder
On Error Resume Next
xItemCount = 0
xCount = 0
Set xTmpFld = Nothing
Set xCurFld = Application.ActiveExplorer.CurrentFolder
For Each xAccount In Outlook.Application.Session.Accounts
    Set xDraftFld = xAccount.DeliveryStore.GetDefaultFolder(olFolderDrafts)
    xItemCount = xItemCount + xDraftFld.Items.Count
    If xDraftFld.EntryID = xCurFld.EntryID Then
        Set xTmpFld = xCurFld.Parent
    End If
Next xAccount
Set xDraftFld = Nothing
If xItemCount > 0 Then
   xPromptStr = "Are you sure to send out all the drafts?"
    xYesOrNo = MsgBox(xPromptStr, vbQuestion + vbYesNo, "Kutools for Outlook")
    If xYesOrNo = vbYes Then
        If Not xTmpFld Is Nothing Then
            Set Application.ActiveExplorer.CurrentFolder = xTmpFld
        End If
        VBA.DoEvents
        For Each xAccount In Outlook.Application.Session.Accounts
            Set xDraftFld = xAccount.DeliveryStore.GetDefaultFolder(olFolderDrafts)
            Set xDraftsItems = xDraftFld.Items
            For i = xDraftsItems.Count To 1 Step -1
                If xDraftsItems.Item(i).Recipients.Count <> 0 Then
                    xDraftsItems.Item(i).sEnd
                    xCount = xCount + 1
                End If
            Next
        Next xAccount
        VBA.DoEvents
        Set Application.ActiveExplorer.CurrentFolder = xCurFld
        MsgBox "Successfully sent " & xCount & " messages", vbInformation, "Kutools for Outlook"
    End If
Else
    MsgBox "No Drafts!", vbInformation + vbOKOnly, "Kutools for Outlook"
End If
End Sub
steps on sendig all draft messages at once in Outlook with VBA code

3. その後、コードを保存し、F5キーを押してこのコードを実行すると、すべての下書きを送信するかどうかを確認するプロンプトボックスが表示されます。「 はい」をクリックしてください。スクリーンショットをご覧ください:

steps on sendig all draft messages at once in Outlook with VBA code

4. そして、送信された下書きメールの件数を通知するダイアログボックスが表示されます。スクリーンショットをご覧ください:

steps on sendig all draft messages at once in Outlook with VBA code

5. 「OK」ボタンをクリックすると、下書きフォルダ内のすべてのメールが一度に送信されます。スクリーンショットをご覧ください:

steps on sendig all draft messages at once in Outlook with VBA code

注意:

1. 上記のコードは、Outlook内のすべてのアカウントからのすべての下書きメールを送信します。

2. 下書きフォルダから特定のメールのみを送信したい場合は、次のVBAコードを使用してください:

VBAコード: 下書きフォルダから選択したメールを送信する:

Sub SendSelectedDraftEmails()
Dim xSelection As Selection
Dim xPromptStr As String
Dim xYesOrNo As Integer
Dim i As Long
Dim xAccount As Account
Dim xCurFld As Folder
Dim xDraftsFld As Folder
Dim xTmpFld As Folder
Dim xArr() As String
Dim xCount As Integer
Dim xMail As MailItem
On Error Resume Next
xCount = 0
Set xTmpFld = Nothing
Set xCurFld = Application.ActiveExplorer.CurrentFolder
For Each xAccount In Outlook.Application.Session.Accounts
    Set xDraftsFld = xAccount.DeliveryStore.GetDefaultFolder(olFolderDrafts)
    If xDraftsFld.EntryID = xCurFld.EntryID Then
        Set xTmpFld = xCurFld.Parent
    End If
Next xAccount
If xTmpFld Is Nothing Then
    MsgBox "The current folder is not a draft folder", vbInformation, "Kutools for Outlook"
    Exit Sub
End If
Set xSelection = Outlook.Application.ActiveExplorer.Selection
If xSelection.Count > 0 Then
    xPromptStr = "Are you sure to send out the selected " & xSelection.Count & " draft item(s)?"
    xYesOrNo = MsgBox(xPromptStr, vbQuestion + vbYesNo, "Kutools for Outlook")
    If xYesOrNo = vbYes Then
        ReDim xArr(xSelection.Count - 1)
        For i = 1 To xSelection.Count
            xArr(i - 1) = xSelection.Item(i).EntryID
        Next
        Set Application.ActiveExplorer.CurrentFolder = xTmpFld
        VBA.DoEvents
        For i = 0 To UBound(xArr)
            Set xMail = Application.Session.GetItemFromID(xArr(i))
            If xMail.Recipients.Count <> 0 Then
                xMail.sEnd
                xCount = xCount + 1
            End If
        Next
        VBA.DoEvents
        Set Application.ActiveExplorer.CurrentFolder = xCurFld
        MsgBox "Successfully sent " & xCount & " messages", vbInformation, "Kutools for Outlook"
    End If
Else
    MsgBox "No items selected!", vbInformation, "Kutools for Outlook"
End If
End Sub

OutlookのAIメールアシスタント:スマートな返信、クリアなコミュニケーション(ワンクリックで魔法のような操作!) 無料

Kutools for OutlookのAIメールアシスタントを使用して、毎日のOutlookタスクを効率化しましょう。この強力なツールは、過去のメールから学習し、インテリジェントで正確な返信を提供し、メールの内容を最適化し、メッセージの作成や修正を手間なく行うことができます。
doc ai email handle

この機能がサポートする内容:

  • スマート返信:過去の会話に基づいて調整された、的確で使用準備の整った返信を取得します。
  • 強化されたコンテンツ:メールの文章を自動的に洗練させ、明瞭さと影響力を高めます。
  • 簡単な作成:キーワードを入力するだけで、複数のライティングスタイルでAIが残りを処理します。
  • インテリジェント拡張:文脈を理解した提案で考えを広げます。
  • 要約:長文のメールを瞬時に簡潔にまとめます。
  • グローバル対応:メールを簡単にどの言語にも翻訳できます。

この機能がサポートする内容:

  • スマートメール返信
  • 最適化されたコンテンツ
  • キーワードベースの下書き
  • インテリジェントなコンテンツ拡張
  • メールの要約
  • 多言語翻訳

何より、この機能は永遠に完全無料です今すぐAIメールアシスタントをダウンロードしてお楽しみください


関連記事:

Outlookで複数の受信者に個別にメールを送信するにはどうすればよいですか?

Excel経由でOutlookを使ってリストにパーソナライズされた大量のメールを送信するにはどうすればよいですか?

Outlookで複数の受信者に個別にカレンダーを送信するにはどうすればよいですか?

Outlookで複数の受信者に他の人に知られずにメールを送信するにはどうすればよいですか?


最高のオフィス生産性ツール

速報: Kutools for Outlook が無料版をリリース!

新しい Kutools for Outlook の無料版を体験してください。70以上の素晴らしい機能が永遠に使えます!今すぐダウンロードをクリック!

🤖 Kutools AI : 高度なAI技術を使用して、メールの返信、要約、最適化、拡張、翻訳、作成を簡単に行います。

📧 メール自動化: 自動返信 (POPとIMAPで利用可能) / メール送信のスケジュール / メール送信時にルールによる自動 CC/BCC / 自動転送 (高度なルール) / 自動挨拶追加 / 複数の宛先を持つメールを個別のメールに自動的に分割...

📨 メール管理: メールの取り消し / 件名やその他によるスパムメールのブロック / 重複したメールの削除 / 高度な検索 / フォルダーを整理...

📁 添付ファイルプロ: バッチ保存 / バッチ切り離し / バッチ圧縮 / 自動保存 / 自動的に切り離す / 自動圧縮...

🌟 インターフェースマジック: 😊より美しくクールな絵文字 /重要なメールが来たときに通知 / クローズ中ではなくOutlookを最小化...

👍 ワンクリックの驚き: 全員に【Attachment】付きで返信 / フィッシング対策メール / 🕘送信者のタイムゾーンを表示...

👩🏼‍🤝‍👩🏻 連絡先とカレンダー: 選択したメールから連絡先を一括追加 /連絡先グループを個別のグループに分割 / 誕生日のリマインダーを削除...

Kutools for Outlook をワンクリックで即座にアンロック。待たずに今すぐダウンロードして効率を高めましょう!

kutools for outlook features1 kutools for outlook features2