La copie des valeurs à partir d'excel dans le corps de la messagerie outlook vb.net

C'est donc une version plus raffinée d'une question que j'ai posée tout à l'heure. J'ai essayé de trier ce pour un bon moment. J'ai trouvé un site qui a du sens, mais je ne peux pas le mettre en œuvre pour une raison quelconque. Je veux juste être en mesure de copier des informations à partir d'excel (tableaux, des graphiques, des plages, etc) dans le corps d'un e-mail outlook.

À partir d'ici:
http://pastebin.com/4VWmcrx6

Elle suggère:

Using VB.NET to copy Excel Range (a table) to body of Outlook email
Sub CopyFromExcelIntoEMail()
Dim Doc As Word.Document
Dim wdRn As Word.Range
Dim Xl As Excel.Application
Dim Ws As Excel.Worksheet
Dim xlRn As Excel.Range

Set Doc = Application.ActiveInspector.WordEditor
Set wdRn = Doc.Range

Set Xl = GetObject(, "Excel.Application")
Set Ws = Xl.Workbooks("Mappe1.xls").Worksheets(1)

Set xlRn = Ws.Range("b2", "c6")
xlRn.Copy

wdRn.Paste
End Sub

J'ai essayé plusieurs variantes, mais avec pas de chance.

Imports System.Data
Imports System.IO
Imports Microsoft.Office.Interop
Imports Office = Microsoft.Office.Core
Imports xlNS = Microsoft.Office.Interop.Excel
Imports System.Runtime.InteropServices
Imports System.Net.Mail
Imports excel1 = Microsoft.Office.Interop.Excel
Imports word1 = Microsoft.Office.Interop.Word
Imports outlook1 = Microsoft.Office.Interop.Outlook

Module Module1

    Sub Main()
        Dim Doc As Word.Document
        Dim wdRn As Word.Range
        Dim Xl As Excel.Application
        Dim Ws As Excel.Worksheet
        Dim xlRn As Excel.Range

        Dim application As New Outlook.Application
        Dim mail As Outlook.MailItem = CType(application.CreateItem(Outlook.OlItemType.olMailItem), Outlook.MailItem)


        Doc = Application.ActiveInspector.WordEditor
        wdRn = Doc.Range

        Xl = GetObject("C:\Users\ajohnson\Desktop\Book1.xlsx", "Excel.Application")
        Ws = Xl.Workbooks("Book1").Worksheets(1)

        xlRn = Ws.Range("a1", "d2")
        xlRn.Copy()

        With mail
            .Body = wdRn.Paste() & vbCr & wdRn.Paste()

        End With

    End Sub

End Module

Il ne semble pas comme il devrait être que difficile et j'ai une idée raisonnable de ce qui se passe, mais peu importe ce que j'essaie ça ne fonctionne pas. Ce code renvoie une com exception sur

Doc = Application.ActiveInspector.WordEditor

J'ai aussi essayé d'utiliser le code tel qu'il a été donner, mais il est dit que l'application n'est pas défini.

Toute aide serait grandement appréciée, Merci, comme toujours.

Pour la postérité (je vois cette question dans tous les sens): La solution de @Siddharth Déroute sera certainement le travail, mais si vous essayez de faire ne pas obtenir tronquée sur les mûres (il s'agit en réalité, je vous jure) une meilleure approche peut être trouvé dans les commentaires.

Sub Export_Range_Images()

' =========================================
' Code to save selected Excel Range as Image
' =========================================

Dim oRange As Range
Dim oCht As Chart
Dim oImg As Picture
Set oRange = Range("A1:B2")
Set oCht = Charts.Add
oRange.CopyPicture xlScreen, xlPicture
oCht.Paste

oCht.Export FileName:="C:\temp\SavedRange.jpg", Filtername:="JPG"

End Sub 

Cela vient de ici, avec:

.HTMLBody="< img src='C:\Temp\logo.jpg'>" & vbCr & "< img src='C:\Temp\logo.jpg'>"

De ici.

L'idée étant que vous créez .les fichiers jpg de les rangées ou les tables qui vous intéressent et ensuite utiliser le format html pour les placer dans le corps de l'email. Entre ces deux approches, vous devriez être en mesure de le faire fonctionner.

InformationsquelleAutor asjohnson | 2012-05-22