XNUMXつのExcelワークブック内のすべてのワークシートを個別のOutlook電子メールとしてバッチ送信する方法

今すぐ共有:

Excelブック内のすべてのワークシートを個別のOutlook電子メールとして送信する場合は、この記事で紹介した方法を使用できます。 面倒なXNUMXつずつ送ることなく、まとめて実現することができます。

私の以前の投稿では「ExcelワークシートをOutlook電子メールとして送信する2つの簡単な方法「Excelワークシートをメールで送信する方法は2つあります」。1つのワークブック内のすべてのワークシートを個別のメールとして一括送信したい場合は、その記事で紹介した2つの方法のどちらを使用しても非常に面倒で手間がかかります。そこで、ここでは「一括送信」を短時間で実現できる別の方法を紹介します。

XNUMXつのExcelワークブック内のすべてのワークシートを個別のOutlook電子メールとしてバッチ送信する

XNUMXつのExcelワークブック内のすべてのワークシートを個別の電子メールとしてバッチ送信する

  1. まず、ソースのExcelブックを開く必要があります。
  2. 次に、Excelウィンドウに入った後、「Alt + F11」キーのショートカットをタップする必要があります。
  3. 次に、「Microsoft Visual BasicforApplications」という別のウィンドウが表示されます。
  4. その中で、未使用のモジュールを開くか、新しいモジュールを挿入する必要があります。
  5. その後、次のVBAコードをこのモジュールにコピーできます。
Sub SendEachWorksheet_inOutlookEmail()
    Dim objWorksheet As Excel.Worksheet
    Dim objRange As Excel.Range
    Dim objTempWorkbook As Excel.Workbook
    Dim objTempWorksheet As Excel.Worksheet
    Dim strTempFolder As String
    Dim strHTMLFile As String
    Dim objHTMLFile As Object
    Dim objFileSystem As Object
    Dim objTextStream As Object
    Dim objOutlookApp As Outlook.Application
    Dim objMail As Outlook.MailItem
 
    For Each objWorksheet In ActiveWorkbook.Sheets
        Set objRange = objWorksheet.UsedRange
        objRange.Copy
 
        Set objTempWorkbook = Excel.Application.Workbooks.Add(1)
        Set objTempWorksheet = objTempWorkbook.Sheets(1)
        With objTempWorksheet.Cells(1)
             .PasteSpecial xlPasteValues
             .PasteSpecial xlPasteColumnWidths
             .PasteSpecial xlPasteFormats
        End With
 
        strTempFolder = CStr(Environ("USERPROFILE")) & "\AppData\Local\Temp"
        strHTMLFile = strTempFolder & "\Temp" & Format(Now, "yyyymmddhhmmss") & ".htm"
        Set objHTMLFile = objTempWorkbook.PublishObjects.Add(xlSourceRange, strHTMLFile, objTempWorksheet.Name, objTempWorksheet.UsedRange.Address)
        objHTMLFile.Publish (True)
 
        Set objOutlookApp = CreateObject("Outlook.Application")
        Set objMail = objOutlookApp.CreateItem(olMailItem)
 
        Set objFileSystem = CreateObject("Scripting.FileSystemObject")
        Set objTextStream = objFileSystem.OpenTextFile(strHTMLFile)
        objMail.HTMLBody = objTextStream.ReadAll
 
        'Change the email details as per your needs
        With objMail
             .To = "test@datanumen.com"
             .Subject = objWorksheet.Name
             .Display
        End With
 
        objTextStream.Close
        objTempWorkbook.Close False
        Kill strHTMLFile
    Next
End Sub

VBAコード-XNUMXつのExcelワークブック内のすべてのワークシートを個別のOutlook電子メールとしてバッチ送信

  1. その後、F5キーボタンを押すか、ツールバーの「実行」アイコンをクリックして、このマクロをトリガーできます。
  2. 一度に、このExcelワークブックのすべてのワークシートに対応する電子メールがOutlookに表示されます。
  3. 最後に、すべてのメールの詳細を再確認し、最後に[送信]ボタンをクリックしてメールを送信できます。

バックアップがない場合は、強力な回復ツールを適用します

ますます多くのユーザーがデータバックアップの重要性を理解しています。 PSTファイルをバックアップしている限り、 PST回復 損傷後は非常に簡単になります。 しかし、効果的で最新のPSTバックアップがない場合は、次のような外部PST修復ツールを利用する以外に選択肢はありません。 DataNumen Outlook Repair。 それはそよ風のように侵害されたPSTファイルを修復することができます。

著者紹介:

Shirley Zhangは、のデータ復旧の専門家です。 DataNumen、Inc。は、以下を含むデータ復旧技術の世界的リーダーです。 SQLを回復する と見通し修理ソフトウェア製品。 詳細については、次のWebサイトをご覧ください。 WWW。datanumen.com

今すぐ共有:

コメントは締め切りました。