非IT企業に勤める中年サラリーマンのIT日記

非IT企業でしかもITとは全く関係ない部署にいる中年エンジニア。唯一の趣味がプログラミングという”自称”プログラマー。

【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
 

 

以下のように貼り付けたいエリアを選択した状態で上記ソースコードを実行します。

 

すると、以下のようにメール本文と表が貼付けされました。「送信」ボタンを押すとメールが送信されます。

 

スポンサーリンク

 - Excel, Outlook, VBA