Excel Range to Formatted HTML Email

Private Function fncRangeToHtml(strWorksheetName As String, strRangeAddress As String) As String Dim objFilesytem As Object, objTextstream As Object, objShape As Shape Dim strFilename As String, strTempText As String Dim blnRangeContainsShapes As Boolean strFilename = Environ$("temp") & "\" & Format(Now, "dd-mm-yy_h-mm-ss") & ".htm" Application.DisplayAlerts = False ThisWorkbook.PublishObjects.Add( _ SourceType:=xlSourceRange, _ Filename:=strFilename, _ Sheet:=strWorksheetName, _ Source:=strRangeAddress, _ HtmlType:=xlHtmlStatic).Publish True Application.DisplayAlerts = True Set objFilesytem = CreateObject("Scripting.FileSystemObject") Set objTextstream = objFilesytem.GetFile(strFilename).OpenAsTextStream(1, -2) strTempText = objTextstream.ReadAll objTextstream.Close On Error Resume Next For Each objShape In Worksheets(strWorksheetName).Shapes If Not Intersect(objShape.TopLeftCell, Worksheets( _ strWorksheetName).Range(strRangeAddress)) Is Nothing Then blnRangeContainsShapes = True Exit For End If Next On Error GoTo 0 fncRangeToHtml = strTempText fncRangeToHtml = Replace(fncRangeToHtml, "center", "left") Set objTextstream = Nothing Set objFilesytem = Nothing Kill strFilename End Function

Be the first to comment

You can use [html][/html], [css][/css], [php][/php] and more to embed the code. Urls are automatically hyperlinked. Line breaks and paragraphs are automatically generated.