メールに個別の添付ファイルを添付して送信、VBAでOutlook操作④ 99回

メールに個別の添付ファイルを添付して送信、VBAでOutlook操作④

マクロ講座 動画編 99回
マクロ講座

動画でExcel メールに個別の添付ファイルを添付して送信、VBAでOutlook操作④

メールに個別の添付ファイルを添付して送信、VBAでOutlook操作④

動画版「マクロ講座OUTLOOK操作編」です。
98回のマクロ講座では、メールに添付するための個別の PDF ファイルを、シートから作成して指定したフォルダに保存しました。

今回は、その PDF ファイルをフォルダーの中から、送信する宛先と同じ人へ送るPDFを探して作成したメールに添付するというコードを追加したいと思います。
そのコードはすでに作成したsendmail と言うマクロに追加するわけです。

しかしそれは、本体のマクロに新たな操作を追加するというコード、なのでマクロを部品として別に作って Call ステートメントで呼び出すことにします。

操作の流れですが、添付用の PDF をメールに添付するには、まずオブジェクトを作る必要があります。
メールに添付されるオブジェクトですね。
これは”編集 as Outlook.attachment” アタッチメントコレクションとして宣言します。
(サンプルファイルは、こちらです。 メールに個別の添付ファイルを添付して送信、VBAでOutlook操作④、サンプル99回

マクロ動画 メールに個別の添付ファイルを添付して送信、VBAでOutlook操作④

添付用PDFをメールに添付して送信する操作の流れ

  1. メールに PDF を添付するには、次のような手順で行います。

    OUTLOOKにメール添付して個別にメール送信1
  2. 最初にメールに添付するためのオブジェクトを作成します。変数名としては、attachFile,attachObj などを使うとわかりやすいです。

    OUTLOOKにメール添付して個別にメール送信2
  3. それをメールに追加するには、attachFile.Attachments.Add("ファイル名")

    OUTLOOKにメール添付して個別にメール送信3
  4. これをコードにしていくと、

    OUTLOOKにメール添付して個別にメール送信4
  5. Dir関数でファイルを探す

  6. Dir関数は、指定したパターンまたはファイル属性に一致するファイル、ディレクトリ、フォルダーの名前、またはドライブのボリューム ラベルを表す String を返します。
    つまりDir関数は、引数で指定したフォルダ内にあるファイルを探してくれるということです。

    Dir [ (pathname, [ attributes ] ) ]

    ファイル名はフルパスで指定してやる必要があります。
    そのファイル名をどのようにして見つけるかというと、Dir関数を使います。 その方法を説明していきます。

    OUTLOOKにメール添付して個別にメール送信5

Dir関数でフォルダに保存したPDFファイルを探す

  1. 引数のPathnameにフォルダ名とファイル名を指定して、探してやります。Attributesは属性で省略が可能です。

        Dim filename As String
        filename = Dir(ThisWorkbook.Path & "\pdf\" & key & "*")
    

    OUTLOOKにメール添付して個別にメール送信6
  2. 関数ができたので、メインのマクロを実行してみましょう。

    OUTLOOKにメール添付して個別にメール送信7
  3. 最初のメールを1つ作成したところでブレークポイントを入れておきました。メールにPDFが添付されているのが確認できます。

    OUTLOOKにメール添付して個別にメール送信8
  4. 残りは全部F5キーで実行してしまいます。
    すべてのメールにPDFがその送り先の氏名で作成されて、添付されていることが確認できます。

    OUTLOOKにメール添付して個別にメール送信9
  5. ExcelVBAでOUTLOOKのオブジェクトを操作するには、このOUTLOOK操作シリーズの初回で説明したように、OUTLOOK VBA のライブラリファイルへの参照設定を行う必要があります。
    Visual Basic Editor のメニュー、ツールから参照設定をクリックして以下のように、参照設定ダイアログを表示させてください。
    図では、Microsoft Outlook 16.0 Object Libraryにチェックが入っていますが、このバージョンは操作するOutlookのパージョンに対応した番号になっています。 また参照設定は、ブックごとに行う必要があります。

    OUTLOOKにメール添付して個別にメール送信10