【ExcelVBA】Excelの表をOutlookメール本文にコピペする方法
以前、ExcelマクロからOutlook経由でメールする方法について書きました。
ここではメール本文をHTML形式で書き出すまではできましたが、この方法では下図のようなExcel上の表をコピペすることができません。<table>タグで作ることは可能ですが面倒なのでさくっとコピペしたいところです。
その方法がこちらです。前回はHTMLBodyプロパティを使って本文を書き込んでいましたが、今回はペースト機能を使って本文にペタペタ貼っていきます。
Sub toMail() 'outlook 起動 Set outlook = CreateObject("Outlook.Application") Set Namespace = outlook.GetNameSpace("MAPI") Set folder = Namespace.GetDefaultFolder(6) '規定のフォルダーを指定 folder.Display '送信メール作成 Set mail = outlook.CreateItem(0) mail.BodyFormat = 2 'HTML形式 mail.To = "test@outlook.jp; test2@outlook.jp" '宛先 mail.Subject = "テスト送信" '件名 'メール本文 mess1 = "これはテスト送信です。" & vbCrLf mess2 = "以上" & vbCrLf '選択したセル(表)をコピー Selection.Copy 'Outlookメールに貼り付け mail.Display With mail.GetInspector().WordEditor.Windows(1).Selection .TypeText mess1 .Paste .TypeText vbCrLf .TypeText mess2 End With End Sub
以下のように貼り付けたいエリアを選択した状態で上記ソースコードを実行します。
すると、以下のようにメール本文と表が貼付けされました。「送信」ボタンを押すとメールが送信されます。
スポンサーリンク