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

ワークシートを PDF ファイルとして保存し、Outlook で添付ファイルとしてメール送信するにはどうすればよいですか?

著者Siluvia変更日

日常業務では、特定のワークシートを同僚やクライアントと共有する必要が頻繁にありますが、その際にはファイル形式が固定され、セキュリティも確保されていることを強く望むことが多いでしょう。Outlook 経由でワークシートを PDF ファイルとして送信するのは一般的な要件であり、特にレポートの記録、請求書の送付、または簡単に変更されてほしくない確定済みデータの共有に最適です。従来の方法では、ワークシートを手動で PDF として保存し、Outlook を開いてメールを作成し、PDF を添付して送信するという一連の手順が必要で、繰り返しが多い場合や複数のシートを扱う際には煩雑かつ時間がかかってしまいます。

本記事では、ワークシートを PDF に変換し、その PDF をOutlook メールに直接添付する作業をExcel から自動化する手順を、ステップ・バイ・ステップでわかりやすくご案内します。これにより、手作業の繰り返しから解放され、大幅な時間節約が実現できます。VBA コードによる解決策に加え、具体的な操作方法、メリット、適用シナリオ、そして実践に役立つヒントもあわせてご紹介します。

VBA コードでワークシートを PDF ファイルとして保存し、添付ファイルとしてメール送信する


VBA コードでワークシートを PDF ファイルとして保存し、添付ファイルとしてメール送信する

Excel ワークシートを PDF ファイルとしてエクスポートし、Outlook 経由でメール送信するプロセスを高速化するには、次の VBA コードをご活用ください。この方法は、パーソナライズされたレポートや請求書、その他のデータスナップショットをExcel から直接定期的に送信したい場合に特に効果的で、保存とメール送信の手順を完全に自動化します。

この方法を適用する前に、Microsoft Outlook がインストール済みで、かつデフォルトのメールクライアントに設定されていることをご確認ください。このコードは、Excel 環境でマクロが有効になっている場合に最適なパフォーマンスを発揮します。

1。PDF として保存して送信したいワークシートを開き、AltF11を同時に押して、Microsoft Visual Basic for Applications(VBA)エディターを起動します。

2。VBA ウィンドウで、メニューから挿入標準モジュールをクリックすると、新しいコードモジュールが作成されます。次に、以下の VBA コードをモジュールのコードウィンドウにコピー&ペーストしてください。

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

Sub Saveaspdfandsend()
Dim xSht As Worksheet
Dim xFileDlg As FileDialog
Dim xFolder As String
Dim xYesorNo As Integer
Dim xOutlookObj As Object
Dim xEmailObj As Object
Dim xUsedRng As Range

Set xSht = ActiveSheet
Set xFileDlg = Application.FileDialog(msoFileDialogFolderPicker)

If xFileDlg.Show = True Then
   xFolder = xFileDlg.SelectedItems(1)
Else
   MsgBox "You must specify a folder to save the PDF into." & vbCrLf & vbCrLf & "Press OK to exit this macro.", vbCritical, "Must Specify Destination Folder"
   Exit Sub
End If
xFolder = xFolder + "\" + xSht.Name + ".pdf"

'Check if file already exist
If Len(Dir(xFolder)) > 0 Then
    xYesorNo = MsgBox(xFolder & " already exists." & vbCrLf & vbCrLf & "Do you want to overwrite it?", _
                      vbYesNo + vbQuestion, "File Exists")
    On Error Resume Next
    If xYesorNo = vbYes Then
        Kill xFolder
    Else
        MsgBox "if you don't overwrite the existing PDF, I can't continue." _
                    & vbCrLf & vbCrLf & "Press OK to exit this macro.", vbCritical, "Exiting Macro"
        Exit Sub
    End If
    If Err.Number <> 0 Then
        MsgBox "Unable to delete existing file.  Please make sure the file is not open or write protected." _
                    & vbCrLf & vbCrLf & "Press OK to exit this macro.", vbCritical, "Unable to Delete File"
        Exit Sub
    End If
End If

Set xUsedRng = xSht.UsedRange
If Application.WorksheetFunction.CountA(xUsedRng.Cells) <> 0 Then
    'Save as PDF file 
    xSht.ExportAsFixedFormat Type:=xlTypePDF, Filename:=xFolder, Quality:=xlQualityStandard
    
    'Create Outlook email 
    Set xOutlookObj = CreateObject("Outlook.Application")
    Set xEmailObj = xOutlookObj.CreateItem(0)
    With xEmailObj
        .Display
        .To = ""
        .CC = ""
        .Subject = xSht.Name + ".pdf"
        .Attachments.Add xFolder
        If DisplayEmail = False Then
            '.Send
        End If
    End With
Else
  MsgBox "The active worksheet cannot be blank"
  Exit Sub
End If
End Sub

3。コードを貼り付けたら、F5を押すか、VBA エディターで実行をクリックしてマクロを実行します。すると、フォルダー選択ダイアログが表示されるので、PDF ファイルを保存するフォルダーを選択し、OKをクリックして続行してください。

VBAコードを実行して、このPDFファイルを保存するフォルダーを選択します

メモと実用的なヒント

1。このマクロは、選択したフォルダー内にワークシートと同じ名前の PDF ファイルを作成します。
2。アクティブなワークシートが空の状態でコードを実行しようとすると、下のスクリーンショットのような警告ダイアログが表示されます。これにより、誤って空白の PDF を保存・送信してしまうことを防ぎます。マクロを実行する前に、ワークシートに内容が含まれていることを確認してください。

アクティブなワークシートが空白の場合、警告メッセージボックスが表示されます

4。処理が完了すると、新しいOutlook メールウィンドウが開き、PDF ファイルが自動で添付されます。件名にはワークシート名に「。pdf」を付けたものが自動的に入力されるため、すぐに送信準備が整います。必要に応じてメール本文を編集し、宛先を追加して送信可能。手動での添付ミスを防ぎ、業務効率をぐんとアップします。

PDFファイルが添付された新しいOutlookメールが作成されます

注意:このマクロは、Microsoft Outlook がインストールされており、デフォルトのメールクライアントとして設定されている場合にのみ動作します。他のメールプログラムをご利用の場合は、このソリューションは適用できません。

この VBA ベースの手法は、確定済みワークシートを PDF 添付として定期的に配布する必要がある場合に最も効率的で、繰り返しの手作業を最小限に抑えます。ただし、Outlook に依存すること、複数シートを一括処理できないこと、マクロを有効にする必要があることなどの制限があります。複数のワークシートを一度に送信するなど、より複雑なワークフローが必要な場合は、Excel アドインや組み込み機能の利用をご検討ください。

代替ソリューション:VBA マクロが環境に適さない場合(例:マクロが制限されている場合)は、Excel の組み込み機能であるエクスポートまたは名前を付けて保存を使ってワークシートを PDF として手動で保存し、その後Outlook で添付して送信することも可能です。この方法は手順が多くなりますが、特別な権限やスクリプトの知識が不要で、誰でもすぐに使えます。


ワークシートや複数のワークシートを、個別の PDF ファイルとして一度に簡単に保存できます。

ブックの分割機能を備えたKutools for Excelを使えば、以下のデモのように、ワークシートや複数のワークシートを個別の PDF ファイルとして一括で簡単に保存できます。今すぐダウンロードしてお試しください!(30 日間無料トライアル)

Kutoolsで複数のワークシートを個別のPDFファイルとして保存します


関連記事:

最高の 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 日間のフル機能トライアル— 登録不要、クレジットカード不要
  • 最高のお得感— 個別アドイン購入よりお得