How to convert a range of Cell in Excel to Image file?
The following VBA code is a User Defined Function (UDF) that can save a group of continuous cells as a JPG file.
This UDF has one argument, which is defined at line 1 as imageRng. When using this function, it will expect the user to select a range of cells.
Lines 2 – 4 are declaring the variable sImageFilePath, which will contain the location and the name of the to be saved JPG file.
Line 5 – 6 are declaring and opening a new clean Excel workbook under the variable wbTemp, which will function as a mnemonic in the creation of the JPG file.
Line 7 – 13 will copy and paste imageRng as a picture in wbTemp and save it as a JPG file at location sImageFilePath.
Line 14 – 16 will produce a dialog box about the whereabouts of the JPG file and cleanup wbTemp to make the function ready for the next image to be saved as JPG.
Sub ExcelToJPGImage(imageRng As Range) 'Code from officetricks.com Dim sImageFilePath As String sImageFilePath = ThisWorkbook.Path & Application.PathSeparator & "ExcelRangeToImage_" sImageFilePath = sImageFilePath & VBA.Format(VBA.Now, "DD_MMM_YY_HH_MM_SS_AM/PM") & ".jpg" 'Create Temporary workbook to hold image Dim wbTemp As Workbook Set wbTemp = Workbooks.Add(1) 'Copy image & Save to new file imageRng.CopyPicture xlScreen, xlPicture wbTemp.Activate With wbTemp.Worksheets("Sheet1").ChartObjects.Add(imageRng.Left, imageRng.Top, imageRng.Width, imageRng.Height) .Activate .Chart.Paste .Chart.Export Filename:=sImageFilePath, FilterName:="jpg" End With 'Close Temp workbook wbTemp.Close False Set wbTemp = Nothing MsgBox "Image File Saved To: " & sImageFilePath End Sub
If you would like to know more about how to do this refer to the below link as well.
External link: Learn to save Excel file as image