KutoolsforOffice— 1 つのソリューション、5 つの強力なツール。少ない労力で大きな成果。

Excel チュートリアル – Excel からメールを送信する方法

著者Siluvia変更日

通常、メールはOutlook や Gmail などのメールクライアントを使って送信します。しかし、多くのユーザーがデータをExcel ワークブックに保存しており、作業中にその一部を他の人と共有する必要があるため、メールクライアントをわざわざ操作せずにExcel ワークブックから直接メールを送信したいと考えています。このステップバイステップのチュートリアルでは、さまざまな条件のもとでExcel からメールを送信する方法をわかりやすく解説します。

注:以下の方法を適用する前に、コンピューターに Outlook メールクライアントを設定し、既定のメールクライアントとして指定しておく必要があります。

 目次:[ 非表示 ]

(下または右側の目次にある任意の見出しをクリックすると、対応する章に移動します。)

1.Excel からメールを送信する基本

このセクションでは、Excel からメールを送信する基本的な方法をご紹介します。

1.1 Excel の組み込み機能でメールを送信する

Excel からシンプルなメール(宛先、件名、Cc、本文のみ)を送信したい場合は、Excel の組み込み機能をご利用いただけます。


1.1.1 数式を使用してExcel からメールを送信する

下記の表に示すとおり、指定されたフィールドに基づいてExcel から異なるメールを送信するには、各フィールドのセル参照を使ってハイパーリンク数式を作成します。メール用のハイパーリンクを作成すれば、必要なリンクをクリックするだけで自動的にメールが送信されます。

注:「To」または「Cc」フィールドに複数の受信者を指定する場合は、セミコロン(;)で区切ってください。

このセクションでは、ハイパーリンク数式にメールアドレス、Cc の宛先、件名、本文をそれぞれ追加する方法を4 つのパートに分けてご紹介します。以下の手順に従って、ぜひお試しください。

「HYPERLINK」関数の構文と引数は次のとおりです。

構文

HYPERLINK(link_location, [friendly_name])

引数

「Link_location」(必須):開くドキュメントのパスとファイル名;
ヒント:本チュートリアルでは、宛先のメールアドレス、Cc 宛先、件名、本文などのメールに必要なすべてのフィールドを、第1 引数「link_location」に入力する必要があります。
「Friendly_name」(任意):セルに表示されるジャンプ用の値。

1.1.1.1 ハイパーリンク数式にメールアドレスを追加する

ここでは、メールの受信者を追加するために数式内で「mailto:」を使用します。この例では、最初の受信者のメールアドレスがセル B2 にあるため、「mailto:」を付けてセル B2 を参照します。

“mailto:”&B2

1.ハイパーリンクを表示するセル(ここではセル F2)を選択します。

2.次に、以下の数式を入力してください。

=HYPERLINK("mailto:"&B2)

注:「Enter」キーを押すと、以下のスクリーンショットのようにハイパーリンクが作成されます。このリンクをクリックすると、Outlook のメール作成画面が開き、受信者のメールアドレスが自動的に「To」フィールドに入力されます。

これで受信者のメールアドレスがハイパーリンク数式に追加されました。引き続き、必要に応じて件名や Cc の宛先、本文を入力してください。


1.1.1.2 ハイパーリンク数式に Cc の受信者を追加する

ハイパーリンク関数に Cc の受信者を追加するには、数式内に「?cc=」を以下のように挿入します。

「?cc=」 & C2
ここで、C2 には CC 宛先のメールアドレスが含まれています。

セル F2 の数式は次のようになります:

=HYPERLINK("mailto:" & B2 & "?cc=" & C2)


1.1.1.3 ハイパーリンク数式に件名を追加する

ハイパーリンク関数に件名を追加するには、数式の一部として「&subject=」を以下のように挿入します。

「&subject=」& D2
ここで、D2 にはメールの件名が含まれています。

セル F2 の数式は次のようになります:

=HYPERLINK("mailto:" & B2 & "?cc=" & C2 & "&subject="& D2)


1.1.1.4 改行を含む本文をハイパーリンク数式に追加する

最後のステップとして、ハイパーリンク数式に本文を追加します。例では、セル E2 に2 行のテキストが改行で区切られており、メール本文でもその改行を維持したいとします。このような場合、Outlook は改行を正しく認識するでしょうか?実際に確認してみましょう。

ハイパーリンク数式に本文を追加するには、「&body=」を数式の一部として以下のように挿入する必要があります。

「&body=」& E2
ここで、E2 にはメール本文が含まれています。

セル F2 の数式は次のようになります:

=HYPERLINK("mailto:" & B2 & "?cc=" & C2 & "&subject="& D2 & "&body="& E2)

注:「Enter」キーを押すかリンクをクリックすると、新規メールの本文が1 行で表示されていることが確認できます。

メール本文を複数行で表示するには、改行を入れたい位置にキャリッジリターンの文字コード「%0A」を挿入し、セルの内容を修正してください。下記のスクリーンショットをご参照ください:


1.1.1.5 ハイパーリンクに表示するテキストを指定する

上記の手順により、メールフィールドを含む Link_location 引数の作成が完了しました。このセクションでは、次の引数[friendly_name]を完成させます。

ここでは、ハイパーリンク付きのセルに「Email to xx」というテキストを表示したいとします(xx はセル A2 の受信者名)。その場合、セル F2 の数式は次のように変更します:

=HYPERLINK("mailto:" & B2 & "?cc=" & C2 & "&subject="& D2 & "&body="& E2, "Email to "&A2)

「Enter」キーを押すと、結果が表示されます。

この数式セルを選択し、「オートフィルハンドル」を下方向にドラッグして、他のメール用のハイパーリンクを一括作成しましょう。下記のスクリーンショットをご参照ください:


1.1.2 ハイパーリンク機能を使用してExcel からメールを送信する

上記のハイパーリンク数式を使う以外にも、Excel の「ハイパーリンクの作成」機能でメール用ハイパーリンクを手動で作成できます。このセクションでは、その手順を詳しくご説明します。

1.ハイパーリンクを挿入したいセルを右クリックし、「リンク」を右クリックメニューから選択します。

2.表示される「ハイパーリンクの作成」ダイアログボックスで、次のように設定してください。

2.1)左側のペインで「メールアドレス」を選択してください。
2.2)「表示するテキスト」テキストボックスに、セルに表示したいテキストを入力してください。
ヒント: このダイアログボックスではセル参照を使用できないため、以下のとおりメールフィールドを手動で入力する必要があります。
2.3)「メールアドレス」テキストボックスには、以下のメールアドレスを入力する必要があります。
mailto:メールアドレス
テキスト「メールアドレス」は実際のメールアドレスに置き換えてください。メールアドレスが複数ある場合は、セミコロンで区切ってください。
2.4)「件名」テキストボックスでは、メールの件名とメール本文をここで指定できます。以下のように設定してください。
メールの件名&body=Email body
この例では、「Monthly sale&body=Hi、%0AEmail received」と入力しています。
ここで、件名は「Monthly sale」です。
および
メール本文は次のとおりです。
Hi,
Email received。(「%0A」は Outlook が認識できるキャリッジリターン文字コードです)
2.5)「OK」ボタンをクリックしてハイパーリンクを保存してください。スクリーンショットを参照してください。

ハイパーリンクをクリックすると、下記のスクリーンショットのように、指定された「To」、件名、本文が含まれたOutlook メールが作成されます。

注:

1)この方法では、メール用のハイパーリンクを1 つずつ手動で作成する必要があります。
2)この方法ではメールに CC フィールドを追加できません。CC フィールドが必要な場合は、新しく開くメールウィンドウから追加してください。

1.2 VBA スクリプトでセル内の複数の受信者にメールを送信する

上記の例では、複数のメールアドレスが1 つのセル内にセミコロン区切りで表示されています。以下のスクリーンショットのようにメールアドレスの一覧があり、それら全員に1 通のメールまたは個別のメールを送信したい場合、次の VBA コードが役立ちます。


1.2.1 VBA スクリプトでセル内の複数の受信者に1 通のメールを送信する

1.メールを送信したいすべてのメールアドレスを含むワークシートで、「Alt」+「F11」キーを押して「Microsoft Visual Basic for Applications」ウィンドウを開きます。

2.「Microsoft Visual Basic for Applications」ウィンドウで、「挿入」>「モジュール」をクリックし、次のコードを「モジュール(コード)」ウィンドウに貼り付けてください。

VBA コード:メールアドレスの一覧にメールを送信する

Sub sendmultiple()
'updateby Extendoffice 20220802
    Dim xOTApp As Object
    Dim xMItem As Object
    Dim xCell As Range
    Dim xRg As Range
    Dim xEmailAddr As String
    Dim xTxt As String
    On Error Resume Next
    xTxt = ActiveWindow.RangeSelection.Address
    Set xRg = Application.InputBox("Please select the addresses list:", "Kutools for Excel", xTxt, , , , , 8)
    If xRg Is Nothing Then Exit Sub
    Set xOTApp = CreateObject("Outlook.Application")
    For Each xCell In xRg
        If xCell.Value Like "*@*" Then
            If xEmailAddr = "" Then
                xEmailAddr = xCell.Value
            Else
                xEmailAddr = xEmailAddr & ";" & xCell.Value
            End If
        End If
    Next
    Set xMItem = xOTApp.CreateItem(0)
    With xMItem
        .To = xEmailAddr
        .Subject = "Test"
        .Body = "Dear " _
                & vbNewLine & vbNewLine & _
                "This is a test email " & _
                "sending in Excel"
        .Display
    End With
End Sub

3.「F5」キーを押してコードを実行すると、「Kutools for Excel」のダイアログボックスが表示されます。メールアドレスの一覧を選択して「OK」をクリックしてください。

メールアドレスのリスト入力を求める「Kutools for Excel」ダイアログボックスのスクリーンショット

注:

1)上記のダイアログボックスを表示させたくない場合や、コード内で直接メールアドレスの範囲を指定したい場合は、次の行を置き換えてください。
Set xRg = Application.InputBox(「Please select the addresses list:」, 「Kutools for Excel」, xTxt, , , , , 8)
次のように置き換えます。
Set xRg = Range("A2:A7")
2)以下の行で、独自のメールの件名と本文を指定できます。
.Subject = 「Test」
.Body = "Dear " _
        & vbNewLine & vbNewLine & _
        "This is a test email " & _
        "sending in Excel"
3)新しいメッセージウィンドウを開かずにメールを直接送信するには、次の行を置き換える必要があります。
.Display
次のように置き換えます。
.Send

コードを実行すると、「範囲を選択してください」内のすべてのメールアドレスがメッセージウィンドウの「To」フィールドに表示されます。下記のスクリーンショットをご参照ください。

宛先フィールドにすべてのメールアドレスが入力されたメールメッセージウィンドウのスクリーンショット


1.2.2 VBA スクリプトでセルにリストされた各受信者に個別にメールを送信する

上記のコードは、「範囲を選択してください」内のすべてのメールアドレスをメッセージウィンドウの「To」フィールドに追加します。各メールアドレス宛てに個別にメールを送信し、他の受信者のメールアドレスが互いに見えないようにしたい場合は、以下の VBA スクリプトをお試しください。

1.メールを送信したいすべてのメールアドレスを含むワークシートで、「Alt」+「F11」キーを押して「Microsoft Visual Basic for Applications」ウィンドウを開きます。

2.「Microsoft Visual Basic for Applications」ウィンドウで、「挿入」>「モジュール」をクリックし、次のコードをモジュール(コード)ウィンドウに貼り付けてください。

VBA コード:セル内の各メールアドレスリストに個別にメールを送信する

Sub SendEmailToAddressInCells()
'Updated by Extendoffice 20220802
    Dim xRg As Range
    Dim xRgEach As Range
    Dim xRgVal As String
    Dim xAddress As String
    Dim xOutApp As Outlook.Application
    Dim xMailOut As Outlook.MailItem
    On Error Resume Next
    xAddress = ActiveWindow.RangeSelection.Address
    Set xRg = Application.InputBox("Please select the addresses list", "KuTools For Excel", xAddress, , , , , 8)
    If xRg Is Nothing Then Exit Sub
    Application.ScreenUpdating = False
    Set xOutApp = CreateObject("Outlook.Application")
    Set xRg = xRg.SpecialCells(xlCellTypeConstants, xlTextValues)
    For Each xRgEach In xRg
        xRgVal = xRgEach.Value
        If xRgVal Like "?*@?*.?*" Then
            Set xMailOut = xOutApp.CreateItem(olMailItem)
            With xMailOut
                .To = xRgVal
                .Subject = "Test"
                .Body = "Dear " _
                      & vbNewLine & vbNewLine & _
                        "This is a test email " & _
                        "sending in Excel"
                .Display
                '.Send
            End With
        End If
    Next
    Set xMailOut = Nothing
    Set xOutApp = Nothing
    Application.ScreenUpdating = True
End Sub

3.次に、「ツール」>「参照設定」をクリックします。「参照設定 – VBAProject」ダイアログボックスで、「Microsoft Outlook 16.0 オブジェクト ライブラリ」を探してチェックし、「OK」をクリックして変更を保存します。

Excel の「参照 – VBAProject」ダイアログボックスで、Microsoft Outlook 16.0 オブジェクトライブラリが選択されているスクリーンショット

4.「F5」キーを押してコードを実行すると、「Kutools for Excel」のダイアログボックスが表示されます。メールアドレスの一覧を選択して「OK」をクリックしてください。

メールアドレスリストの選択を求める「Kutools for Excel」ダイアログボックスのスクリーンショット

注:

1)上記のダイアログボックスを表示させたくない場合や、コード内で直接メールアドレスの範囲を指定したい場合は、次の行を置き換えてください。
Set xRg = Application.InputBox(「Please select the addresses list:」, 「Kutools for Excel」, xTxt, , , , , 8)
次のように置き換えます。
Set xRg = Range("A2:A7")
2)以下の行で、独自のメールの件名と本文を指定できます。
.Subject = "Test"
.Body = "Dear " _
        & vbNewLine & vbNewLine & _
        "This is a test email " & _
        "sending in Excel"
3)メッセージウィンドウを開かずにメールを直接送信するには、次の行を置き換える必要があります。
.Display
次のように置き換えます。
.Send

この例では、選択した範囲内に6 つのメールアドレスがあるため、以下のスクリーンショットのように、それぞれのメールアドレス宛てに「To」フィールドが自動的に入力された6 つのOutlook メッセージウィンドウが作成されます。

宛先フィールドに個別のメールアドレスが入力された複数の Outlook メッセージウィンドウのスクリーンショット

5.最後に、「送信」ボタンをクリックして、メールを1 通ずつ送信します。


2.Excel から送信されるメールに添付ファイルの挿入またはOutlook の署名を追加する(VBA スクリプト使用時)

このセクションでは、Excel から送信するメールに添付ファイルを挿入したり、Outlook の既定の署名を追加したりする方法をご紹介します。

2.1 Excel から送信されるメールに添付ファイルの挿入を追加する

ここでは添付ファイルを挿入するさまざまなケースをご紹介します。必要に応じて、最適な方法をお選びください。このセクションでは、以下のリンクをクリックして該当の手順にすぐ移動できます:


2.1.1 特定のファイルを添付としてメールで送信する

Excel からフォルダー内の1 つまたは複数のファイルを添付ファイルとしてメールで送信するには、次の VBA コードをご利用いただけます。

1。「Alt」キーと「F11」キーを同時に押します。

2。開いた「Microsoft Visual Basic for Applications」ウィンドウで、「挿入」>「標準モジュール」をクリックし、表示された「モジュール(コード)」ウィンドウに以下の VBA コードを貼り付けてください。

VBA コード:Excel からフォルダー内のファイルを添付ファイルとしてメール送信する

Sub EmailWithAttachments()
'Updated by Extendoffice 20220802
    Dim xStrFile As String
    Dim xFilePath As String
    Dim xFileDlg As FileDialog
    Dim xFileDlgItem As Variant
    Dim xOutApp As Outlook.Application
    Dim xMailOut As Outlook.MailItem
    Application.ScreenUpdating = False
    Set xOutApp = CreateObject("Outlook.Application")
    Set xMailOut = xOutApp.CreateItem(olMailItem)
    Set xFileDlg = Application.FileDialog(msoFileDialogFilePicker)
    If xFileDlg.Show = -1 Then
        With xMailOut
            .BodyFormat = olFormatRichText
            .To = "xxx@aaa.com"
            .Subject = "test"
            .HTMLBody = "test"
            For Each xFileDlgItem In xFileDlg.SelectedItems
                .Attachments.Add xFileDlgItem
            Next xFileDlgItem
            .Display
        End With
    End If
    Set xMailOut = Nothing
    Set xOutApp = Nothing
    Application.ScreenUpdating = True
End Sub

注:

1)「。To = xxx@aaa.com」の行で、「xxx@aaa.com」を実際の宛先のメールアドレスに置き換えてください。
2)「。Subject = "test"」および「。HTMLBody = "test"」の行で、それぞれメールの件名とメール本文を変更してください。
3)必要に応じて CC および BCC の宛先を追加できます。「.To = xxx@aaa.com」の行の直後に、次の2 行を追加してください。
.CC = 「email address」
.BCC = 「email address」

3。次に、「ツール」>「参照設定」をクリックします。「参照設定 – VBAProject」ダイアログボックスで、「Microsoft Outlook 16.0 オブジェクト ライブラリ」のチェックボックスをオンにして、「OK」をクリックし、変更を保存します。

Excel の「参照 – VBAProject」ダイアログボックスで、Microsoft Outlook 16.0 オブジェクトライブラリが選択されているスクリーンショット

4。「F5」キーを押してコードを実行すると、「参照」ウィンドウが表示されます。メールに添付したいファイルを選択し、「OK」をクリックしてください。

Excel でメールに添付するファイルを選択するための「参照」ウィンドウのスクリーンショット

その後、メッセージウィンドウが表示され、選択したファイルが「添付ファイル」欄に添付として表示されていることを確認できます。

選択したファイルが添付として表示された Outlook メッセージウィンドウのスクリーンショット


2.1.2 現在のワークシートを添付ファイルとしてメール送信する

Excel で現在のワークシートを添付ファイルとしてメール送信したい場合は、このセクションの VBA スクリプトをご利用いただけます。

1。「Alt」+「F11」キーを押してください。

2。開いた「Microsoft Visual Basic for Applications」ウィンドウで、「挿入」>「標準モジュール」をクリックし、表示された「モジュール(コード)」ウィンドウに以下の VBA コードを貼り付けてください。

VBA コード:現在のワークシートを添付ファイルとしてメール送信する

Sub SendWorkSheet()
'Update by Extendoffice 20220802
Dim xFile As String
Dim xFormat As Long
Dim Wb As Workbook
Dim Wb2 As Workbook
Dim FilePath As String
Dim FileName As String
Dim OutlookApp As Object
Dim OutlookMail As Object
On Error Resume Next
Application.ScreenUpdating = False
Set Wb = Application.ActiveWorkbook
ActiveSheet.Copy
Set Wb2 = Application.ActiveWorkbook
Select Case Wb.FileFormat
Case xlOpenXMLWorkbook:
    xFile = ".xlsx"
    xFormat = xlOpenXMLWorkbook
Case xlOpenXMLWorkbookMacroEnabled:
    If Wb2.HasVBProject Then
        xFile = ".xlsm"
        xFormat = xlOpenXMLWorkbookMacroEnabled
    Else
        xFile = ".xlsx"
        xFormat = xlOpenXMLWorkbook
    End If
Case Excel8:
    xFile = ".xls"
    xFormat = Excel8
Case xlExcel12:
    xFile = ".xlsb"
    xFormat = xlExcel12
End Select
FilePath = Environ$("temp") & "\"
FileName = Wb.Name & Format(Now, "dd-mmm-yy h-mm-ss")
Set OutlookApp = CreateObject("Outlook.Application")
Set OutlookMail = OutlookApp.CreateItem(0)
Wb2.SaveAs FilePath & FileName & xFile, FileFormat:=xFormat
With OutlookMail
    .To = "xxx@aaa.com"
    .CC = "Email Address"
    .BCC = "Email Address"
    .Subject = "kte features"
    .Body = "Please check and read this document."
    .Attachments.Add Wb2.FullName
    .Display
    '.Send
End With
Wb2.Close
Kill FilePath & FileName & xFile
Set OutlookMail = Nothing
Set OutlookApp = Nothing
Application.ScreenUpdating = True
End Sub

注:

1)「。To = xxx@aaa.com」の行で、「xxx@aaa.com」を実際の宛先のメールアドレスに置き換えてください。メールアドレスが複数ある場合は、セミコロンで区切ってください。
2)「。Subject = "kte features"」および「。Body = " Please check and read this document。"」の行で、それぞれメールの件名とメール本文を変更してください。
3)以下の2 行について:
.CC = 「email address」
.BCC = 「email address」
CC および BCC の宛先を追加したい場合は、各行の「"メールアドレス"」を必要なメールアドレスに置き換えてください。
CC および BCC の宛先が不要な場合は、各行の先頭にアポストロフィ'を追加してください。

3。「F5」キーを押してコードを実行すると、現在のワークシートがExcel ワークブックとして保存され、自動的にメッセージウィンドウに添付ファイルとして挿入されます。スクリーンショットをご確認ください:

現在のワークシートが Excel ブックとして保存され、添付された Outlook メッセージウィンドウのスクリーンショット

注:現在のワークシートのみを含む添付されたブックは、元のブックと同じ名前となり、さらにコード実行時刻がブック名に追加されます。


2.1.3 現在のブックを添付ファイルとしてメール送信する

Excel で現在のワークシートを添付ファイルとしてメール送信する VBA コードを学んだ後、ここではワークブック全体を添付ファイルとしてメール送信できる別の VBA スクリプトをご紹介します。以下の手順に従ってください。

1。「Alt」+「F11」キーを押してください。

2。開いた「Microsoft Visual Basic for Applications」ウィンドウで、「挿入」>「標準モジュール」をクリックし、表示されたモジュール(コード)ウィンドウに以下の VBA コードを貼り付けてください。

VBA コード:Excel から現在のブックを添付ファイルとしてメール送信する

Sub SendWorkBook()
'Update by Extendoffice 20220802
Dim OutlookApp As Object
Dim OutlookMail As Object
Set OutlookApp = CreateObject("Outlook.Application")
Set OutlookMail = OutlookApp.CreateItem(0)
On Error Resume Next
With OutlookMail
    .To = "xxx@aaa.com"
    .CC = "Email Address"
    .BCC = "Email Address"
    .Subject = "kte feature"
    .Body = "Hello, please check and read this document, thank you."
    .Attachments.Add Application.ActiveWorkbook.FullName
    .Display
    '.Send
End With
Set OutlookMail = Nothing
Set OutlookApp = Nothing
End Sub

注:

1)「。To = xxx@aaa.com」の行で、「xxx@aaa.com」を実際の宛先のメールアドレスに置き換えてください。メールアドレスが複数ある場合は、セミコロンで区切ってください。
2)「。Subject = "kte features"」および「。Body = " Please check and read this document。"」の行で、それぞれメールの件名とメール本文を変更してください。
3)以下の2 行について:
.CC = 「email address」
.BCC = 「email address」
CC および BCC の宛先を追加したい場合は、各行の「"メールアドレス"」を必要なメールアドレスに置き換えてください。
CC および BCC の宛先が不要な場合は、各行の先頭にアポストロフィ ' を追加してください。

3。「F5」キーを押してコードを実行すると、現在のブックが自動的にメッセージウィンドウの添付ファイルとして挿入されます。スクリーンショットをご確認ください:

現在のブックが自動的に添付された Outlook メッセージウィンドウのスクリーンショット


2.1.4 ワークブック全体を PDF 添付ファイルとしてメール送信する

多くの場合、ユーザーはExcel ワークブックを PDF ファイルとして保存し、それを添付ファイルとして他者に送信しています。このセクションでは、ワークブックを手動で PDF として保存することなく、現在開いているワークブックをExcel から直接 PDF 添付ファイルとしてメール送信する方法をご紹介します。

1。「Alt」+「F11」キーを押してください。

2。開いた「Microsoft Visual Basic for Applications」ウィンドウで、「挿入」>「標準モジュール」をクリックし、表示されたモジュール(コード)ウィンドウに以下の VBA コードを貼り付けてください。

VBA コード:ワークブック全体を PDF 添付ファイルとしてメール送信する

Sub SendWorkBookAsPDF()
'Update 20220803
Dim Wb As Workbook
Dim FilePath As String
Dim FileName As String
Dim xOutApp As Object
Dim xOutMail As Object
On Error Resume Next

Application.ScreenUpdating = False
Set Wb = Application.ActiveWorkbook
FileName = Left(Wb.Name, (InStrRev(Wb.Name, ".", -1, vbTextCompare) - 1)) & Format(Now, "dd-mmm-yy h-mm-ss") & ".pdf"
FilePath = Environ$("temp") & "\" & FileName

Wb.ExportAsFixedFormat Type:=xlTypePDF, FileName:= _
    FilePath, Quality:=xlQualityStandard, _
    IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
    False

Set xOutApp = CreateObject("Outlook.Application")
Set xOutMail = xOutApp.CreateItem(0)
With xOutMail
       .To = "xxx@aaa.com"
       .CC = "Email Address"
       .BCC = "Email Address"
       .Subject = "test"
       .Body = "test"
       .Attachments.Add FilePath
       .Display   'or use .Send
   End With
Kill FilePath
Set xOutMail = Nothing
Set xOutApp = Nothing
Application.ScreenUpdating = True
End Sub

注:

1)「。To = xxx@aaa.com」の行で、「xxx@aaa.com」を実際の宛先のメールアドレスに置き換えてください。メールアドレスが複数ある場合は、セミコロンで区切ってください。
2)「。Subject = "test"」および「。Body = "test"」の行で、それぞれメールの件名とメール本文を変更してください。
3)以下の2 行について:
.CC = 「Email Address」
.BCC = 「Email Address」
CC および BCC の宛先を追加したい場合は、各行の「"メールアドレス"」を必要なメールアドレスに置き換えてください。
CC および BCC の宛先が不要な場合は、各行の先頭にアポストロフィ ' を追加してください。
4)PDF ファイルの名前は元のワークブックの名前と同じになります。また、コードを実行した時刻もブック名に追加されます。ファイル名にタイムスタンプを追加したくない場合は、次の行から「& Format(Now、 "dd-mmm-yy h-mm-ss")」を削除してください。
FileName = Left(Wb.Name, (InStrRev(Wb.Name, ".", -[[PH_367]], vbTextCompare) - [[PH_366]])) & Format(Now, 「dd-mmm-yy h-mm-ss」) & 「.pdf」

3。「F5」キーを押してコードを実行すると、現在のブックが PDF ファイルとして自動的に新しいメッセージウィンドウに添付されます。スクリーンショットをご覧ください:

現在のブックが PDF ファイルとして添付された Outlook メッセージウィンドウのスクリーンショット


2.1.5 現在のワークシートを PDF 添付ファイルとしてメール送信する

たとえば、「Monthly sales」という名前のブックに「sales report」というワークシートがあり、そこに売上レポート表を作成し終えたとします。このワークシートを PDF ファイルとして同僚に送信したい場合、以下の VBA コードが役立ちます。

1。「Alt」+「F11」キーを押してください。

2。開いた「Microsoft Visual Basic for Applications」ウィンドウで、「挿入」>「標準モジュール」をクリックし、表示された「モジュール(コード)」ウィンドウに以下の VBA コードを貼り付けます。

VBA コード:現在のワークシートを PDF 添付ファイルとしてメール送信する

Sub SendWorkSheetToPDF()
'Update by Extendoffice 20220803
Dim Wb As Workbook
Dim FileName As String
Dim OutlookApp As Object
Dim OutlookMail As Object
On Error Resume Next
Set Wb = Application.ActiveWorkbook
FileName = Wb.FullName
xIndex = VBA.InStrRev(FileName, ".")
If xIndex > 1 Then FileName = VBA.Left(FileName, xIndex - 1)
FileName = FileName & "_" + ActiveSheet.Name & ".pdf"
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, FileName:=FileName
Set OutlookApp = CreateObject("Outlook.Application")
Set OutlookMail = OutlookApp.CreateItem(0)
With OutlookMail
    .To = "xxx@aaa.com"
    .CC = "Email Address"
    .BCC = "Email Address"
    .Subject = "test"
    .Body = "test"
    .Attachments.Add FileName
    .Display
    '.Send
End With
Kill FileName
Set OutlookMail = Nothing
Set OutlookApp = Nothing
End Sub

注:

1)「。To = xxx@aaa.com」の行で、「xxx@aaa.com」を実際の宛先のメールアドレスに置き換えてください。メールアドレスが複数ある場合は、セミコロンで区切ってください。
2)「。Subject = "test"」および「。Body = "test"」の行で、それぞれメールの件名とメール本文を変更してください。
3)以下の2 行について:
.CC = 「Email Address」
.BCC = 「Email Address」
CC および BCC の宛先を追加したい場合は、各行の「"メールアドレス"」を必要なメールアドレスに置き換えてください。
CC および BCC の宛先が不要な場合は、各行の先頭にアポストロフィ ' を追加してください。
4)PDF ファイルの名前は「元のワークブック名_元のワークシート名」となります。この例では、PDF の名前は「Monthly sales_sales report」となります。

3。「F5」キーを押してコードを実行すると、現在のワークシートが PDF ファイルとして自動的に新しいメッセージウィンドウに添付されます。スクリーンショットをご覧ください:

現在のワークシートが PDF ファイルとして添付された Outlook メッセージウィンドウのスクリーンショット


2.2 Excel から送信されるメールにOutlook の署名を挿入する

上記の例を引き続き用いると、Excel から現在のワークシートを PDF ファイルとして添付して送信するために上記の VBA コードを利用できますが、メッセージウィンドウに Outlook の署名を追加することはできません。Excel から送信するメールに Outlook の既定の署名をそのまま保持したい場合は、以下の方法が役立ちます。

以下に2 つの VBA コードを示します。

VBA コード1:このコードは、Outlook の署名を保持するのに役立ちます。

VBA コード2:このコードを使えば、現在のワークシートを PDF 添付ファイルとしてメールで送信できます。

VBA コード1:Outlook の署名を保持する

.HTMLBody = "Email body" & "
" & .HTMLBody

VBA コード2:現在のワークシートを PDF 添付ファイルとしてメール送信する

Sub SendWorkSheetToPDF()
'Update by Extendoffice 20220803
Dim Wb As Workbook
Dim FileName As String
Dim OutlookApp As Object
Dim OutlookMail As Object
On Error Resume Next
Set Wb = Application.ActiveWorkbook
FileName = Wb.FullName
xIndex = VBA.InStrRev(FileName, ".")
If xIndex > 1 Then FileName = VBA.Left(FileName, xIndex - 1)
FileName = FileName & "_" + ActiveSheet.Name & ".pdf"
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, FileName:=FileName
Set OutlookApp = CreateObject("Outlook.Application")
Set OutlookMail = OutlookApp.CreateItem(0)
With OutlookMail
    .To = "xxx@aaa.com"
    .CC = "Email Address"
    .BCC = "Email Address"
    .Subject = "test"
    .Body = "test"
    .Attachments.Add FileName
    .Display
    '.Send
End With
Kill FileName
Set OutlookMail = Nothing
Set OutlookApp = Nothing
End Sub

1。通常、「Alt」キーと「F11」キーを押すと、「Microsoft Visual Basic for Applications」ウィンドウが開きます。

2. 「Microsoft Visual Basic for Applications」ウィンドウで、「挿入」>「標準モジュール」をクリックし、表示された「モジュール(コード)」ウィンドウに上記の VBA コード2 を貼り付けます。

3。Excel から送信されるメールにOutlook の既定の署名を保持するには、次のように VBA コード2 を変更する必要があります:

1)「。Body」の行を「VBA code 1」に置き換えてください。
2)「。Display」の行を「With OutlookMail(または他のコードでは With xMailOut)」の行の下に移動してください。スクリーンショットを参照してください。

.Body 行が置き換えられ、.Display が With OutlookMail の下に配置された修正後の VBA コードのスクリーンショット

以下が変更後の完全なコードです。

Sub SendWorkSheetToPDF()
'Update by Extendoffice 20220803
Dim Wb As Workbook
Dim FileName As String
Dim OutlookApp As Object
Dim OutlookMail As Object
On Error Resume Next
Set Wb = Application.ActiveWorkbook
FileName = Wb.FullName
xIndex = VBA.InStrRev(FileName, ".")
If xIndex > 1 Then FileName = VBA.Left(FileName, xIndex - 1)
FileName = FileName & "_" + ActiveSheet.Name & ".pdf"
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, FileName:=FileName
Set OutlookApp = CreateObject("Outlook.Application")
Set OutlookMail = OutlookApp.CreateItem(0)
With OutlookMail
    .Display
    .To = "xxx@aaa.com"
    .CC = "Email Address"
    .BCC = "Email Address"
    .Subject = "test"
    .HTMLBody = "Email body" & "
" & .HTMLBody
    .Attachments.Add FileName
    '.Send
End With
Kill FileName
Set OutlookMail = Nothing
Set OutlookApp = Nothing
End Sub

4。「F5」キーを押してコードを実行すると、現在のワークシートが PDF ファイルとして添付された新しいメッセージウィンドウが開き、Outlook の既定の署名がメール本文の末尾に自動的に挿入されます。

メール本文の末尾に既定の署名が自動挿入された Outlook のメールのスクリーンショット


3 特定の条件が満たされたときにExcel から自動的にメールを送信する(VBA スクリプト使用)

上記の例では、メール送信のためにコードを手動で実行する必要があります。しかし、特定のセルの値が一定以上になったとき、セルの値が変更されたとき、あるいは指定した日付に到達したときなど、特定の条件が満たされたタイミングで自動的にコードをトリガーし、メールを送信したいケースも少なくありません。このセクションでは、Google でExcel ユーザーがよく検索する代表的な条件をリストアップし、その条件が満たされた際にExcel から自動でメールを送信する方法をご紹介します。

3.1 セルの値が特定の数値に達したときに自動的にメールを送信する

以下のスクリーンショットのように、セル D6 に売上合計が含まれる売上表があるとします。売上合計が10,000 を超えた場合に自動的に上司へメールを送信し、10,000 以下であれば何も実行しないようにするには、次のように設定します。

1。売上表を含むワークシートのシートタブを右クリックし、コンテキストメニューから「コードの表示」を選択してください。

2。開いた「Microsoft Visual Basic for Applications」ウィンドウで、以下の VBA コードを「シート(コード)」ウィンドウに貼り付けてください。

VBA コード:Excel でセルの値が特定の数値に達したときに自動的にメールを送信する

Dim xRg As Range
'Update by Extendoffice 20200803
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Target.Cells.Count > 1 Then Exit Sub
Set xRg = Intersect(Range("D6"), Target)
If xRg Is Nothing Then Exit Sub
If IsNumeric(Target.Value) And Target.Value > 10000 Then
Call Mail_small_Text_Outlook
End If
End Sub
Sub Mail_small_Text_Outlook()
Dim xOutApp As Object
Dim xOutMail As Object
Dim xMailBody As String
Set xOutApp = CreateObject("Outlook.Application")
Set xOutMail = xOutApp.CreateItem(0)
xMailBody = "Hi boss" & vbNewLine & vbNewLine & _
"Total sales of over $10,000 in January: " & Range("D6")
On Error Resume Next
With xOutMail
.To = "xxx@aaa.com"
.CC = "Email address"
.BCC = "Email address"
.Subject = "test"
.Body = xMailBody
.Display 'or use .Send
End With
On Error GoTo 0
Set xOutMail = Nothing
Set xOutApp = Nothing
End Sub

Private Sub Worksheet_Calculate()
Dim xI As Integer
Dim xRg As Range
Set xRg = Range("D6")
On Error GoTo Err01
xI = Int(xRg.Value)
If xI > 10000 Then
Call Mail_small_Text_Outlook
End If
Err01:
End Sub

注:

1)「D6」は、その値に基づいてメールを送信するセルです。
2)「> 10000」は条件を示しており、D6 の値が10000 より大きい場合にメールが送信されます。
3)次の行の「Range("D6")」は、メール本文が D6 の値を参照することを意味します。
xMailBody = "Hi boss" & vbNewLine & vbNewLine & _
"Total sales of over $10,000 in January: " & Range("D6")
4)「。To = xxx@aaa.com」の行で、「xxx@aaa.com」を実際の宛先のメールアドレスに置き換えてください。メールアドレスが複数ある場合は、セミコロンで区切ってください。
5)「。Subject = "test"」の行でメールの件名を変更してください。
6)以下の2 行について:
.CC = 「Email Address」
.BCC = 「Email Address」
CC および BCC の宛先を追加したい場合は、各行の「"メールアドレス"」を必要なメールアドレスに置き換えてください。
CC および BCC の宛先が不要な場合は、各行の先頭にアポストロフィ ' を追加してください。

今後、セル D6 の値が10,000 を超えると、以下のスクリーンショットのようにメールが自動で作成されます。

Excel のセル D6 の値が 10000 を超えた場合に Outlook で作成されたメールのスクリーンショット


3.2 セルの値が変更されたときに自動的にメールを送信する

以下のスクリーンショットのように、各月の売上が異なるワークシートに記録され、別のワークシートに売上合計がまとめられたブックを受け取ったとします。この売上合計を検証し、値が変更されていた場合には、送信者にブックを返送してセルが変更されたことを知らせる必要があります。

1。売上表を含むワークシートのシートタブを右クリックし、コンテキストメニューから「コードの表示」を選択してください。

2。開いた「Microsoft Visual Basic for Applications」ウィンドウで、以下の VBA コードを「シート(コード)」ウィンドウに貼り付けてください。

VBA コード:指定されたセルの値が変更されたときに自動的にメールを送信する

Private Sub Worksheet_Change(ByVal Target As Range)
'Updated by Extendoffice 20220803
Dim xRgSel As Range
Dim xOutApp As Object
Dim xMailItem As Object
Dim xMailBody As String
Dim xBoolean As Boolean
Dim xItsRG As Range
Dim xDDs As Range
Dim xDs As Range
On Error Resume Next
Application.ScreenUpdating = False
Application.DisplayAlerts = False
xBoolean = False
Set xRg = Range("B14")

Set xItsRG = Intersect(Target, xRg)
Set xDDs = Intersect(Target.DirectDependents, xRg)
Set xDs = Intersect(Target.Dependents, xRg)
If Not (xItsRG Is Nothing) Then
Set xRgSel = xItsRG
xBoolean = True
ElseIf Not (xDDs Is Nothing) Then
Set xRgSel = xDDs
xBoolean = True
ElseIf Not (xDs Is Nothing) Then
Set xRgSel = xDs
xBoolean = True
End If

ActiveWorkbook.Save
If xBoolean Then
Debug.Print xRgSel.Address

Set xOutApp = CreateObject("Outlook.Application")
Set xMailItem = xOutApp.CreateItem(0)
xMailBody = "The cell " & xRgSel.Address(False, False) & _
" in the worksheet '" & Me.Name & "' were modified on " & _
Format$(Now, "mm/dd/yyyy") & " at " & Format$(Now, "hh:mm:ss") & _
" by " & Environ$("username") & "."

With xMailItem
.To = "xxx@aaa.com"
.CC = "Email address"
.BCC = "Email address"
.Subject = "Worksheet modified"
.Body = xMailBody
.Attachments.Add (ThisWorkbook.FullName)
.Display
End With
Set xRgSel = Nothing
Set xOutApp = Nothing
Set xMailItem = Nothing
End If
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub

注:コード内では、

1)コード中の「B14」は、セル B14 の値が変更されたときにメールを送信することを意味します。
2)「。To = xxx@aaa.com」の行で、「xxx@aaa.com」を実際の宛先のメールアドレスに置き換えてください。メールアドレスが複数ある場合は、セミコロンで区切ってください。
3)「。Subject = "Worksheet modified"」の行でメールの件名を変更してください。
4)以下の2 行について:
.CC = 「Email Address」
.BCC = 「Email Address」
CC および BCC の宛先を追加したい場合は、各行の「"メールアドレス"」を必要なメールアドレスに置き換えてください。
CC および BCC の宛先が不要な場合は、各行の先頭にアポストロフィ ' を追加してください。

今後、セル B14 の値が変更されると、以下のスクリーンショットのようにOutlook メッセージが自動的に作成されます。

Excel のセル B14 の値が変更された場合に Outlook で作成されたメールのスクリーンショット


3.3 ブックが保存されたときに自動的にメールを送信する

修正後に他者と共有する必要のあるブックがある場合、通常はブックを保存し、メールクライアントを起動して、そのブックを添付した新規メールを作成し、宛先などのフィールドに入力して送信する必要があります。このセクションでは、ブックを保存するたびに自動的にメールを作成する方法をご紹介します。以下の手順に従ってください。

1。「Alt」キーと「F11」キーを押して、「Microsoft Visual Basic for Applications」ウィンドウを開きましょう。

2。このウィンドウで、「プロジェクト」ペインの「ThisWorkbook」をダブルクリックし、以下の VBA コードを「ThisWorkbook(コード)」ウィンドウに貼り付けてください。

VBA コード:ブックが保存されたときに自動的にメールを送信する

Private Sub Workbook_AfterSave(ByVal Success As Boolean)
'Updated by Extendoffice 20220804
    Dim xOutApp As Object
    Dim xMailItem As Object
    Dim xName As String
    On Error Resume Next
    Set xOutApp = CreateObject("Outlook.Application")
    Set xMailItem = xOutApp.CreateItem(0)
    xName = ActiveWorkbook.FullName
    With xMailItem
        .To = "xxx@aaa.com"
        .CC = "Email address"
        .BCC = "Email address"
        .Subject = "The workbook has been updated"
        .Body = "Hi," & Chr(13) & Chr(13) & "File is now updated."
        .Attachments.Add xName
        .Display
       '.send
    End With
    Set xMailItem = Nothing
    Set xOutApp = Nothing
End Sub

注:コード内では、

1)「。To = xxx@aaa.com」の行で、「xxx@aaa.com」を実際の宛先のメールアドレスに置き換えてください。メールアドレスが複数ある場合は、セミコロンで区切ってください。
2)「。Subject = "The workbook has been updated"" and "。Body = "Hi、" & Chr([[PH_417]]) & Chr(13) & "File is now updated。"」の行で、メールの件名と本文をそれぞれ変更してください。
3) 次の2 行について:
.CC = 「Email Address」
.BCC = 「Email Address」
CC および BCC の宛先を追加する場合は、該当行の「メールアドレス」というテキストを必要なメールアドレスに置き換えてください。
CC および BCC の宛先が不要な場合は、各行の先頭にアポストロフィ「'」を追加してください。

3。今後、「Ctrl」+「S」キーを押すか「保存」ボタンをクリックしてブックを保存すると、Outlook メールが自動的に作成されます。現在のブックが添付ファイルとして添付され、あらかじめ指定されたフィールドの内容が自動的に入力されていることをご確認いただけます。スクリーンショットをご覧ください:

現在のブックが添付され、自動送信の準備が整った Outlook メールのスクリーンショット

ヒント:このブックを頻繁に使用する場合は、今後のために VBA スクリプトを保存できるよう、「Excel マクロ有効ブック」として保存することをおすすめします。手順は以下の通りです。

1) 「ファイル」>「名前を付けて保存」をクリックし、ファイルを保存するフォルダーを選択します。
2) 「名前を付けて保存」ダイアログボックスで、「ファイル名」テキストボックスに必要なファイル名を入力し、「保存形式を指定」ドロップダウンリストから「Excel マクロ有効ブック」を選択してから、「保存」ボタンをクリックします。スクリーンショットを参照してください:

Excel の「名前を付けて保存」ダイアログで、マクロ有効ブックとしてワークブックを保存するオプションが表示されているスクリーンショット


3.4 指定時刻に自動的にメールを送信する

たとえば、毎週金曜日の午前9 時にタスク割り当て用のワークブックを誰かにメールで送信する必要があり、メールクライアントを手動で操作せずにExcel でこの作業を自動化したいとお考えの方もいらっしゃるでしょう。このセクションでは、その実現方法をご紹介します。

1。「Alt」+「F11」キーを押して、「Microsoft Visual Basic for Applications」ウィンドウを開きましょう。

2。「Microsoft Visual Basic for Applications」ウィンドウで、「挿入」>「標準モジュール」を順にクリックし、表示されたモジュールウィンドウに以下の VBA コードを貼り付けてください。

VBA コード1:Excel から現在のブックを添付ファイルとしてメール送信する

Sub Timer()
    If Weekday(Date) = vbFriday Then
        SendWorkBook
        Application.OnTime TimeValue("09:00:00"), "Timer"
    Else
        Application.OnTime TimeValue("09:00:00"), "Timer"
    End If
End Sub

Sub SendWorkBook()
'Update by Extendoffice 20220802
Dim OutlookApp As Object
Dim OutlookMail As Object
Set OutlookApp = CreateObject("Outlook.Application")
Set OutlookMail = OutlookApp.CreateItem(0)
On Error Resume Next
With OutlookMail
    .To = "xxx@aaa.com"
    .CC = "Email Address"
    .BCC = "Email Address"
    .Subject = "kte feature"
    .Body = "Hello, please check and read this document, thank you."
    .Attachments.Add Application.ActiveWorkbook.FullName
    .Display
    '.Send
End With
Set OutlookMail = Nothing
Set OutlookApp = Nothing
End Sub

3。このウィンドウで、「プロジェクト」ペインにある「ThisWorkbook」をダブルクリックし、表示される「ThisWorkbook (コード)」ウィンドウに以下の VBA コードを貼り付けてください。

メール送信をスケジュールするための「Workbook_Open」イベントと「Application.OnTime」関数を含む VBA コードエディタのスクリーンショット

VBA コード2:指定時刻に自動的にメールを送信する

Private Sub Workbook_Open()
    Application.OnTime TimeValue("09:00:00"), "Timer"
End Sub

注:

1) VBA コード1 において、次の行の「Friday」は、メールが毎週金曜日に自動送信されることを意味します。
If Weekday(Date) = vbFriday Then
2) VBA コード1 および VBA コード2 において、「09:00:00」という時刻は、メールが特定の日の午前9 時に送信されることを意味します。
必要に応じて、日付と時刻を変更できます。
3) コード実行時、メールが作成されます。メッセージウィンドウを表示せずに直接送信したい場合は、VBA コード1 から「。Display」行を削除し、「。Send」行の先頭にあるアポストロフィ「'」を削除してください。

4。コードを保存した後、以下の手順でワークブックをExcel マクロ有効ブックとして保存してください。

4.1) 「ファイル」>「名前を付けて保存」をクリックし、ファイルを保存するフォルダーを選択します。
4.2) 「名前を付けて保存」ダイアログボックスで、「ファイル名」テキストボックスに必要なファイル名を入力し、「保存形式を指定」ドロップダウンリストから「Excel マクロ有効ブック」を選択してから、「保存」ボタンをクリックします。スクリーンショットを参照してください:

Excel の「名前を付けて保存」ダイアログで、マクロ有効ブックとしてワークブックを保存するオプションが表示されているスクリーンショット

5。保存したマクロ有効ブックを開くと、指定された日時になると自動的にメールが作成・送信されます。


4。その他のトピック

このセクションでは、Excel からメールを送信する際に遭遇する可能性のあるその他のトピックをご紹介します。

4.1 Excel からセル範囲をメール送信する(VBA スクリプト使用)

下のスクリーンショットのように、Excel ワークシート内に月次売上表があり、この売上表をメール本文に挿入するか、直接添付ファイルとして他者に送信したいとします。ここでは、その実現に役立つ2 つの方法をご紹介します。

4.1.1 Excel からセル範囲をメール本文の一部として送信する

次の VBA コードを実行すれば、Excel のセル範囲をメール本文にそのまま挿入して送信できます。

1。「Alt」+「F11」キーを押して、「Microsoft Visual Basic for Applications」ウィンドウを開きましょう。

2. 「Microsoft Visual Basic for Applications」ウィンドウで、「ツール」>「参照設定」をクリックします。表示された「参照設定 – VBAProject」ダイアログボックスで、「Microsoft Outlook 16.0 オブジェクト ライブラリリ」のチェックボックスをオンにして、「OK」をクリックします。

3。「挿入」>「標準モジュール」をクリックし、表示される「モジュール(コード)」ウィンドウに、以下の VBA コードを貼り付けてください。

VBA コード:Excel からセル範囲をメール本文の一部として送信する

Sub SendARangeofCells()
'Updated by Extendoffice 20220809
    Dim xRg As Range
    Dim I, J As Long
    Dim xAddress As String
    Dim xMailOut As Object
    Dim xOutApp As Object
    On Error Resume Next
    Set xOutApp = CreateObject("Outlook.Application")
    Set xMailOut = xOutApp.CreateItem(olMailItem)
    xAddress = ActiveWindow.RangeSelection.Address
    Set xRg = Application.InputBox("Please select range you need to paste into email body", "KuTools For Excel", xAddress, , , , , 8)
If xRg Is Nothing Then Exit Sub
Application.ScreenUpdating = False
    Set xOutApp = CreateObject("Outlook.Application")
    Set xMailOut = xOutApp.CreateItem(olMailItem)
    With xMailOut
        .Subject = "test"
        .To = "xxx@aaa.com"
        .CC = "Email address"
        .BCC = "Email address"
        .HTMLBody = RangetoHTML(xRg)
        .Display
        '.Send
    End With
    Set xMailOut = Nothing
    Set xOutApp = Nothing
    Application.ScreenUpdating = True
End Sub

 ' The following VBA script is cited from this page:
 ' https://stackoverflow.com/questions/18663127/paste-excel-range-in-outlook
Function RangetoHTML(rng As Range)
' By Ron de Bruin.
    Dim fso As Object
    Dim ts As Object
    Dim TempFile As String
    Dim TempWB As Workbook

    TempFile = Environ$("temp") & "/" & Format(Now, "dd-mm-yy h-mm-ss") & ".htm"

    'Copy the range and create a new workbook to past the data in
    rng.Copy
    Set TempWB = Workbooks.Add(1)
    With TempWB.Sheets(1)
        .Cells(1).PasteSpecial Paste:=8
        .Cells(1).PasteSpecial xlPasteValues, , False, False
        .Cells(1).PasteSpecial xlPasteFormats, , False, False
        .Cells(1).Select
        Application.CutCopyMode = False
        On Error Resume Next
        .DrawingObjects.Visible = True
        .DrawingObjects.Delete
        On Error GoTo 0
    End With

    'Publish the sheet to a htm file
    With TempWB.PublishObjects.Add( _
         SourceType:=xlSourceRange, _
         Filename:=TempFile, _
         Sheet:=TempWB.Sheets(1).Name, _
         Source:=TempWB.Sheets(1).UsedRange.Address, _
         HtmlType:=xlHtmlStatic)
        .Publish (True)
    End With

    'Read all data from the htm file into RangetoHTML
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set ts = fso.GetFile(TempFile).OpenAsTextStream(1, -2)
    RangetoHTML = ts.ReadAll
    ts.Close
    RangetoHTML = Replace(RangetoHTML, "align=center x:publishsource=", _
                          "align=left x:publishsource=")

    'Close TempWB
    TempWB.Close savechanges:=False

    'Delete the htm file we used in this function
    Kill TempFile

    Set ts = Nothing
    Set fso = Nothing
    Set TempWB = Nothing
End Function

注:コード内では、

「。To = xxx@aaa.com」の行で、「xxx@aaa.com」を実際の受信者のメールアドレスに置き換えてください。複数のメールアドレスが必要な場合は、セミコロンで区切ってください。
2) 次の2 行について:
.CC = 「Email Address」
.BCC = 「Email Address」
CC および BCC の宛先を追加する場合は、該当行の「メールアドレス」というテキストを必要なメールアドレスに置き換えてください。
CC および BCC の宛先が不要な場合は、各行の先頭にアポストロフィ「'」を追加してください。

4。「F5」キーを押してコードを実行します。表示される「Kutools for Excel」ダイアログボックスで、メール本文として送信したいセル範囲を選択し、「OK」をクリックしてください。スクリーンショットをご参照ください:

メール本文の一部として送信するセル範囲を選択する Kutools for Excel ダイアログボックスのスクリーンショット

すると、Outlook メールが自動的に作成されます。ワークシートで選択したセル範囲がメール本文に挿入されていることをご確認ください。スクリーンショットをご覧ください:

Excel から選択した範囲がメール本文に挿入された Outlook メールのスクリーンショット


4.1.2 Excel からセル範囲を添付ファイルとしてメール送信する

ワークシート内のセル範囲をExcel から添付ファイルとしてメールで送信したい場合は、以下の VBA コードをお試しください。

1。「Alt」+「F11」キーを押してください。

2。開いた「Microsoft Visual Basic for Applications」ウィンドウで、「挿入」>「標準モジュール」をクリックし、表示される「モジュール(コード)」ウィンドウに以下の VBA コードを貼り付けてください。

VBA コード:Excel からセル範囲を添付ファイルとしてメール送信する

Sub SendRange()
'Update 20220809
Dim xFile As String
Dim xFormat As Long
Dim Wb As Workbook
Dim Wb2 As Workbook
Dim Ws As Worksheet
Dim FilePath As String
Dim FileName As String
Dim OutlookApp As Object
Dim OutlookMail As Object
Dim WorkRng As Range
xTitleId = "KutoolsforExcel"
Set WorkRng = Application.Selection
Set WorkRng = Application.InputBox("Range", xTitleId, WorkRng.Address, Type:=8)
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Set Wb = Application.ActiveWorkbook
Wb.Worksheets.Add
Set Ws = Application.ActiveSheet
WorkRng.Copy Ws.Cells(1, 1)
Ws.Copy
Set Wb2 = Application.ActiveWorkbook
Select Case Wb.FileFormat
Case xlOpenXMLWorkbook:
    xFile = ".xlsx"
    xFormat = xlOpenXMLWorkbook
Case xlOpenXMLWorkbookMacroEnabled:
    If Wb2.HasVBProject Then
        xFile = ".xlsm"
        xFormat = xlOpenXMLWorkbookMacroEnabled
    Else
        xFile = ".xlsx"
        xFormat = xlOpenXMLWorkbook
    End If
Case Excel8:
    xFile = ".xls"
    xFormat = Excel8
Case xlExcel12:
    xFile = ".xlsb"
    xFormat = xlExcel12
End Select
FilePath = Environ$("temp") & "\"
FileName = Wb.Name & Format(Now, "dd-mmm-yy h-mm-ss")
Set OutlookApp = CreateObject("Outlook.Application")
Set OutlookMail = OutlookApp.CreateItem(0)
Wb2.SaveAs FilePath & FileName & xFile, FileFormat:=xFormat
With OutlookMail
    .To = "xxx@aaa.com"
    .CC = "Email address"
    .BCC = "Email address"
    .Subject = "Monthly sales for 2021"
    .Body = "Hello, please check and read this document. "
    .Attachments.Add Wb2.FullName
    .Display
    '.Send
End With
Wb2.Close
Kill FilePath & FileName & xFile
Set OutlookMail = Nothing
Set OutlookApp = Nothing
Ws.Delete
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub

注:

「。To = xxx@aaa.com」の行で、「xxx@aaa.com」を実際の受信者のメールアドレスに置き換えてください。複数のメールアドレスが必要な場合は、セミコロンで区切ってください。
3) 「。Subject = "Monthly sales for 2021"」および「。Body = "Hello、 please check and read this document。"」の行で、それぞれメールの件名とメール本文を変更してください。
3) 次の2 行について:
.CC = 「email address」
.BCC = 「email address」
CC および BCC の宛先を追加する場合は、該当行の「メールアドレス」というテキストを必要なメールアドレスに置き換えてください。
CC および BCC の宛先が不要な場合は、各行の先頭にアポストロフィ「'」を追加してください。

3。「F5」キーを押してコードを実行します。表示される「Kutools for Excel」ダイアログボックスで、メールの添付ファイルとして送信したいセル範囲を選択し、「OK」をクリックしてください。スクリーンショットをご参照ください:

メールの添付ファイルとして送信するセル範囲を選択する Kutools for Excel ダイアログボックスのスクリーンショット

すると、Outlook メールが自動的に作成されます。ワークシートで選択したセル範囲はExcel ワークブックとして保存され、メッセージウィンドウに添付されます。スクリーンショットをご確認ください:

Excel から選択した範囲が添付ファイルとして保存された Outlook メールのスクリーンショット


4.2 Excel でボタンをクリックしたときにメールを送信する

Excel からメール送信するマクロをコマンドボタンのクリックでトリガーしたい場合(たとえば、ワークシート上のコマンドボタンをクリックして現在のブックを添付ファイルとして他者に送信するなど)は、以下の手順に従って設定してください。

1。「開発」>「挿入」>「コマンドボタン(ActiveX コントロール)」をクリックし、ワークシート上にコマンドボタンを描画します。

ヒント:すでにコマンドボタンがある場合は、この手順をスキップしてください。

2。「Alt」+「F11」キーを押して「Microsoft Visual Basic for Applications」ウィンドウを開き、「挿入」>「標準モジュール」をクリックします。そして、Excel から現在のブックを添付ファイルとしてメール送信するための VBA コードを、「モジュール(コード)」ウィンドウに貼り付けてください。

コードはこちらから取得できます。

注:手順2 で作成したマクロの名前は「SendWorkbook」としています。

3。「Alt」+「Q」キーを押して「Microsoft Visual Basic for Applications」ウィンドウを閉じます。

4。次に、コマンドボタンにマクロを割り当てる必要があります。コマンドボタンを右クリックし、「コードの表示」をコンテキストメニューから選択してください。

5。すると、「Microsoft Visual Basic for Applications」ウィンドウが表示され、「シート(コード)」ウィンドウに以下の2 行が表示されていることを確認できます。

Private Sub CommandButton1_Click()
End Sub

CommandButton1_Click コードを表示している Microsoft Visual Basic for Applications ウィンドウのスクリーンショット

6。コマンドボタンのサブプロシージャ内に、既存のマクロ名を入力してください。

コマンドボタンに既存のマクロを割り当てるよう VBA コードを編集しているスクリーンショット

7。「Alt」+「Q」キーを押して「Visual Basic エディター」を閉じ、[開発]タブの[デザインモード]をクリックしてデザインモードをオフにします。

開発タブでデザインモードをオフにするスクリーンショット

これで、コマンドボタンをクリックすると、現在のブックがメールに添付されて送信されます。


4.3 特定のメールアカウントからメールを送信する

通常、VBA コードでExcel からメールを送信すると、送信者アカウントはOutlook のデフォルトアカウントが使用されます。Outlook に複数のメールアカウントを設定していて、デフォルト以外の特定のアカウントを使ってExcel からメールを送信したい場合は、以下の VBA コードが役立ちます。

このようなケースでは、以下のコードが必要となります。

VBA コード1:

Dim OutlookMail As Outlook.MailItem

VBA コード2:

For Each xAccount In OutlookApp.Session.Accounts
  If VBA.LCase(xAccount.SmtpAddress) = VBA.LCase("zxm@addin99.com") Then 'Specify your email account here
    OutlookMail.SendUsingAccount = xAccount
  End If
Next

上記の VBA コードの使用方法

1) ご自身のコードでは、「Dim OutlookMail As Object」のような行を VBA コード1 に置き換える必要があります。
2) 自分のコードの「On Error Resume Next」行の直下に、以下の VBA コード2 を追加してください。その後、VBA コード2 でメール送信に使用するメールアドレスを指定します。

この例では、Excel から現在のブックを添付ファイルとして送信する際に特定のメールアカウントを指定します。以下の手順に従ってください。

1。「Alt」+「F11」キーを押して、「Microsoft Visual Basic for Applications」ウィンドウを開きます。「ツール」>「参照設定」をクリックし、「参照設定 – VBAProject」ダイアログボックスで「Microsoft Outlook 16.0 オブジェクトライブラリ」のチェックボックスをオンにして、「OK」をクリックします。

Excel の「参照 – VBAProject」ダイアログボックスで、Microsoft Outlook 16.0 オブジェクトライブラリが選択されているスクリーンショット

2。「挿入」>「標準モジュール」をクリックし、表示される「モジュール(コード)」ウィンドウに以下の VBA コードを貼り付けます。

VBA コード:Excel から指定したOutlook アカウント経由で現在のブックをメール添付ファイルとして送信する

Sub SendWorkBook()
'Update by Extendoffice 20220809
Dim OutlookApp As Object
Dim OutlookMail As Outlook.MailItem 'important! Here can’t be declared as Object
Dim xAccount As Account
Set OutlookApp = CreateObject("Outlook.Application")
Set OutlookMail = OutlookApp.CreateItem(olMailItem)
On Error Resume Next
'The following lines helps to specify a certian email account
For Each xAccount In OutlookApp.Session.Accounts
  If VBA.LCase(xAccount.SmtpAddress) = VBA.LCase("zxm@addin99.com") Then 'Specify your email account here
    OutlookMail.SendUsingAccount = xAccount
  End If
Next
'End
With OutlookMail
    .To = "xxx@aaa.com"
    .CC = "Email Address"
    .BCC = "Email Address"
    .Subject = "kte feature"
    .Body = "Hello, please check and read this document, thank you."
    .Attachments.Add Application.ActiveWorkbook.FullName
    .Display
    '.Send
End With
Set OutlookMail = Nothing
Set OutlookApp = Nothing
End Sub

3。「F5」キーを押してコードを実行すると、Outlook のメールメッセージが表示され、「差出人」フィールドにコード内で指定したメールアカウントが自動的に入力されていることを確認できます。


4.4 日付到達時にメールを送信する

特定の期限日に基づいてメールを送信する必要があるケースを想定してください。たとえば、下のスクリーンショットのようなプロジェクト表があり、「範囲 E2:E7 の期限日が本日から7 日以内(現在の日付を2022 年8 月4 日と仮定)」の場合、対応するプロジェクトリーダーに自動的にメールが送信され、プロジェクトの期限が近づいていることをお知らせします。

1。プロジェクト表を含むワークシートのシートタブを右クリックし、コンテキストメニューから「コードの表示」を選択してください。

2。開いた「Microsoft Visual Basic for Applications」ウィンドウで、以下の VBA コードを「Sheet (Code)」ウィンドウに貼り付けてください。

VBA コード:期限日の条件が満たされた際に自動的にメールを送信する

Public Sub SendMailDueDate()
'Updated by Extendoffice 20220804
Dim xRgDate As Range
Dim xRgSend As Range
Dim xRgText As Range
Dim xRgDone As Range
Dim xOutApp As Object
Dim xMailItem As Object
Dim xLastRow As Long
Dim vbCrLf As String
Dim xMailBody As String
Dim xRgDateVal As String
Dim xRgSendVal As String
Dim xMailSubject As String
Dim i As Long
On Error Resume Next
Set xRgDate = Range("E2:E7") 'Please reference the due date column range
If xRgDate Is Nothing Then Exit Sub
Set xRgSend = Range("C2:C7") 'Please reference the email addresses column range
If xRgSend Is Nothing Then Exit Sub
Set xRgText = Range("D2:D7") 'Please reference the remark column range (the remark used to notify project leaders of the expiration of the project)
If xRgText Is Nothing Then Exit Sub
xLastRow = xRgDate.Rows.Count
Set xRgDate = xRgDate(1)
Set xRgSend = xRgSend(1)
Set xRgText = xRgText(1)
Set xOutApp = CreateObject("Outlook.Application")
For i = 1 To xLastRow
xRgDateVal = ""
xRgDateVal = xRgDate.Offset(i - 1).Value
If xRgDateVal <> "" Then
If CDate(xRgDateVal) - Date <= 7 And CDate(xRgDateVal) - Date > 0 Then
xRgSendVal = xRgSend.Offset(i - 1).Value
xMailSubject = xRgText.Offset(i - 1).Value & " on " & xRgDateVal
vbCrLf = "

"
            xMailBody = ""
            xMailBody = xMailBody & "Dear " & xRgSendVal & vbCrLf
            xMailBody = xMailBody & "Remark : " & xRgText.Offset(i - 1).Value & vbCrLf
            xMailBody = xMailBody & ""
Set xMailItem = xOutApp.CreateItem(0)
With xMailItem
.Subject = xMailSubject
.To = xRgSendVal
.CC = "Email address"
.BCC = "Email address"
.HTMLBody = xMailBody
.Display
'.Send
End With
Set xMailItem = Nothing
End If
End If
Next
Set xOutApp = Nothing
End Sub

注:コード内では、

以下の行では、「E2:E7」にメール送信の基準となる期限日が、「C2:C7」に送信先のメールアドレスが、そして「D2:D7」にメール本文に追加される備考(プロジェクトの期限切れを通知する内容)が含まれています。必要に応じて、これらの範囲は変更可能です。
Set xRgDate = Range("E2:E7")
Set xRgSend = Range("C2:C7")
Set xRgText = Range("D2:D7")
2) 以下の行は、期限日が今日から1 日より大きく、かつ7 日以下であることを意味します。必要に応じて変更できます。
If CDate(xRgDateVal) - Date 0 Then
「。To = xxx@aaa.com」の行で、「xxx@aaa.com」を実際の受信者のメールアドレスに置き換えてください。複数のメールアドレスが必要な場合は、セミコロンで区切ってください。
4) 「。Subject = "Worksheet modified"」の行でメールの件名を変更してください。
5) 次の2 行について:
.CC = 「Email Address」
.BCC = 「Email Address」
CC および BCC の宛先を追加する場合は、該当行の「メールアドレス」というテキストを必要なメールアドレスに置き換えてください。
CC および BCC の宛先が不要な場合は、各行の先頭にアポストロフィ「'」を追加してください。

3。「F5」キーを押してコードを実行します。その後、期限日が条件に一致する場合、対応するメールが作成されます。この例では、下のスクリーンショットのように2 通のメールが作成されます。

Excel で有効期限の日付が条件に一致した場合に自動作成された 2 通のメールのスクリーンショット


5。Excel から簡単にメールを送信できる便利なツール

VBA 初心者の方には、上記の方法は少し扱いづらいと感じられるかもしれません。そんな方には、「Kutools for Excel」がおすすめです。メール送信機能をおすすめします!この機能を使えば、わずか数回のクリックでExcel から簡単にメールを送信できます。以下の手順に従ってください。

Kutools for Excelは300 以上の高度な機能を提供し、複雑な作業を効率化して、創造性と生産性を高めます。AI 機能と統合されたKutools は、正確にタスクを自動化し、データ管理を簡単にします。Kutools for Excel の詳細情報。。。         無料トライアル。。。
5.1 必要なメールフィールドを含むメールリストを簡単に作成できます

「メール送信」機能を使う前に、必要なメールフィールドを含んだメーリングリストを作成する必要があります。ここで、メーリングリスト作成機能が大いに役立ちます。

1。「KUTOOLS PLUS」>「メーリングリストの作成」をクリックします。

2。開いた「メーリングリストの作成」ウィンドウで、以下のように設定します。

2.1) 「メーリングリストに含める列を選択してください」セクションで、メールに必要なフィールドにチェックマークを入れてください。
2.2) 「添付ファイル」セクションで、必要な添付ファイルを1 つ以上選択してください。
2.3) メールリストを配置する場所を指定してください。
2.4) 「作成」ボタンをクリックします。スクリーンショットを参照してください:

すると、下のスクリーンショットのようにサンプルのメールリストテーブルが作成されます。

3。次に、サンプル内の元のデータを自分のフィールドデータに置き換えましょう。

これでメールリストテーブルが完成しました。引き続き、「メール送信」機能を適用し、作成したフィールドに基づいてExcel からメールを送信してください。

Kutools for Excel— 300 以上の必須ツールでExcel を強化し、作業をより迅速・簡単に。AI 機能を活用して、スマートなデータ処理と生産性の飛躍的な向上を実現します。今すぐ入手


5.2 作成したフィールドを含むメールを簡単に送信できます(メールリスト内)

必要なメールフィールドを含むメールリストを作成すると()方法についてはこちらをクリック)、これらのフィールドを使ってExcel からメールを送信できるようになります。

1。メールリスト全体を選択し、「KUTOOLS PLUS」>「Send Emails」をクリックします。

2。「Send Emails」ダイアログボックスで、以下の設定を完了してください。

2.1) 各フィールドのダイアログボックスには、メールリストで指定したフィールドが自動的に入力されます。
ヒント:この時点で特定のフィールドが不要な場合は、ドロップダウンリストから空白のオプションをお選びください。
2.2)「プレースホルダーを挿入」(任意):メール本文に可変情報を挿入する必要がある場合。
例えば、複数の宛先にそれぞれの氏名をパーソナライズしたメールを送信する必要がある場合、メール本文内でプレースホルダーを挿入したい位置にカーソルを置き、「E: 名」(またはメーリングリスト内の他の氏名フィールド)を選択してから、「Insert "Placeholder"」ボタンをクリックします;
受信者がメールを受け取ると、メール本文は同じままですが、氏名はそれぞれ異なります。
2.3)必要に応じてメール本文を作成;
2.4)「Outlook を使用して送信」チェックボックスがオンになっていることを確認してください。
2.5)「送信」ボタンをクリックしてください。スクリーンショットを参照してください。

3。その後、「Kutools for Excel」ダイアログボックスが表示され、送信されたメールの件数が通知されます。「OK」ボタンをクリックしてこのダイアログボックスを閉じてください。

ヒント:送信したメールは、Outlook の「送信済みアイテム」フォルダーでご確認いただけます。


5.3 HTML 本文(ハイパーリンクや画像など)付きのメールを簡単に送信

この「Send Emails」機能を使えば、ハイパーリンクや画像、多彩なフォントサイズ・フォント色などを盛り込んだ HTML メールを簡単に作成できます。

必要なメールフィールドを含むメールリストを作成した後、「Send Emails」ダイアログボックスを設定する際には、ツールバーのオプションを使って本文をリッチにできます。

下記のスクリーンショットをご参照ください:


5.4 メール送信時にOutlook の既定の署名を簡単に挿入

上記の方法では、Outlook の既定の署名付きでメールを送信する VBA コードをご紹介しましたが、「Send Emails」機能を使えば、オプションをチェックするだけで、Excel から送信するメールに自動的にOutlook の既定の署名が挿入されます。

必要なメールフィールドを含むメールリストを作成した後、「Send Emails」ダイアログボックスを設定する際は、「Options」>「Use Outlook’s signature settings」をクリックしてください。

注:「Outlook の署名設定を使用する」オプションにチェックマークが入っていることをご確認ください。

受信者は、メールを受け取った際に本文の末尾にOutlook の既定の署名が表示されていることを確認できます。


5.5 特定のメールアカウントから簡単にメールを送信

Excel からメールを送信する際に、デフォルトのアカウントではなく特定のメールアカウントを使いたい場合も、「Send Emails」機能で簡単に実現できます。

必要なメールフィールドを含むメールリストを作成した後、「Send Emails」ダイアログボックスの設定で、「Options」>「Sent from」をクリックし、メール送信に使用するメールアカウントを選択してください。

注:メールアカウントを選択すると、その前にチェックマークが表示されます。

「Send Emails」機能の詳細については、こちらをクリックしてください。

Kutools for Excel— 300 以上の必須ツールでExcel を強化し、作業をより迅速・簡単に。AI 機能を活用して、スマートなデータ処理と生産性の飛躍的な向上を実現します。今すぐ入手

以上のように、Excel からメールを送信する機能は日常業務において非常に役立ちます。本記事では、Excel からのメール送信に関する包括的なトピックをご紹介しました。他にもおすすめのトピックやさらに簡単な解決策があれば、ぜひコメント欄でお知らせください。

最高の Office 業務効率化ツール

🤖KUTOOLS AI アシスタント:次に基づいてデータ分析を革新します:インテリジェント実行     コード生成  カスタム数式作成    データ分析とチャート生成  拡張機能呼び出し
人気の機能検索・ハイライト、または重複をマーキング     空白行を削除する     データを失うことなく列の結合またはセルを     数式を使用しない四捨五入...
スーパー LOOKUP複数条件 VLookup    複数値 VLookup     複数シート間 VLookup      ファジーマッチ....
高度なドロップダウンリストドロップダウンリストをすばやく作成     連動型ドロップダウンリスト     複数選択可能なドロップダウンリスト....
列マネージャー指定した数の列を追加列の移動非表示列の表示状態を切り替え範囲および列の比較...
注目の機能グリッドフォーカス     デザインビュー   強化された数式バー    ワークブックとシートマネージャー     リソースライブラリ(オートテキスト)  日付ピッカー     ワークシートの統合    暗号化/セルの復号化    リストからメール送信     スーパーフィルター      特殊フィルタ(太字のフォントを持つセルをフィルタリング/斜体/取り消し線。。。) 。。。
トップ15 ツールセット12 テキストツールテキストの追加特定の文字を削除、...)   50+チャートタイプガントチャート、...)   40+実用的関数誕生日に基づいて年齢を計算します、...)   19 挿入ツールQR コードを挿入パスから画像を挿入、...)   12 変換ツール単語に変換する為替レートの変換、...)   7 結合と分割ツール高度な行のマージセルの分割、...)さらに多数
Kutools はお好みの言語でご利用いただけます。英語、スペイン語、ドイツ語、フランス語、中国語、および40+の他の言語をサポートしています!

Kutools for Excel でExcel スキルを強化し、これまでにない効率を体験しましょう。Kutools for Excel は、生産性を高め、時間を大幅に節約できる高度な機能を300 以上提供します。最も必要な機能を今すぐ入手するにはこちらをクリック。。。


Office Tab は Office にタブインターフェースをもたらし、作業を大幅に簡単にします

  • Word、Excel、PowerPoint でタブを使った編集と閲覧を有効にします。Publisher、Access、Visio、Project でもご利用いただけます。
  • 複数のドキュメントを、新しいウィンドウではなく、同じウィンドウ内の新しいタブで開いたり作成したりできます。
  • 日々の生産性を50%も向上させ、毎日数百回ものマウスクリックを削減します!

すべてのKutools アドインが、たった1 つのインストーラーで完結。

Kutools for Officeスイートには、Excel ・Word ・Outlook ・PowerPoint 用のアドインと Office Tab Pro が含まれており、複数の Office アプリを横断して作業するチームに最適です。

ExcelWordOutlookTabsPowerPoint
  • オールインワンスイート— Excel、Word、Outlook、PowerPoint 用アドイン+Office Tab Pro
  • インストーラー1 つ、ライセンス1 つ— 数分でセットアップ可能(MSI 対応)
  • 連携してさらにパワーアップ— Office アプリ全体で生産性が向上
  • 30 日間のフル機能トライアル— 登録不要、クレジットカード不要
  • 最高のお得感— 個別アドイン購入よりお得