質問: エクセルのマクロでエクセルの表をメールに自動で張り付ける方法を知りたい あるサイトで下記のマクロを見つけました。 Sub macro() Dim Ap As Object
回答: 文末に移動してペーストするなら >With Ap.ActiveInspector >'貼り付け >.WordEditor.Windows(1).Selection.Paste に1行加えて With Ap.ActiveInspector .WordEditor.Windows(1).Selection.EndKey Unit:=6, Extend:=0 '貼り付け .WordEditor.Windows(1).Selection.Paste にしてみてください。 カーソルの位置を文末に移動してからペーストします。 ただし、前後に文字を加える場合は最初の文字列もリッチテキストで書いた方がすっきりします。 質問のプログラムを変更した場合です。 表はコピーされてる場合です。 文字列を表示する場合は改行も表示する必要があります。(「& vbCrLf」の部分) Sub macro() Dim Ap As Object Dim M As Object 'Excelで選択しているものをコピー(図でも表でもOKです) Selection.Copy Set Ap = CreateObject("Outlook.Application") Set M = Ap.CreateItem(0) M.BodyFormat = 3 'リッチテキスト形式 M.To = "テストアドレス" 'アドレス M.Subject = "納期連絡" '件名 M.Display '画面を表示 With Ap.ActiveInspector.WordEditor.Windows(1).Selection .TypeText "表の前1" & vbCrLf .TypeText "表の前2" & vbCrLf .Paste '表Paste .TypeText "表の後1" & vbCrLf .TypeText "表の後2" & vbCrLf End With End Sub >「M.To =」ですが、自分のエクセルに「BH1セル」に自動で送り先の名前が表示されるので >BH1セルを読むようにするにはどうすでばよいでしょうか? M.To = Range("BH1").Value にしてみてください。