He modificado ligeramente el código mencionado para hacer lo siguiente.
Pase por todas las hojas
Solicite el uso del rango de entrada para capturar la captura de pantalla
Guarde Sheetname.jpg en la carpeta C: \ Temp. El nombre del archivo es Sheetname con extensión .jpg
Tenga en cuenta que esto no capturará ningún objeto incrustado, por ejemplo, formas insertadas o una imagen, etc. Solo capturará la captura de pantalla del rango de celdas que ingrese para cada hoja. Además, no existen validaciones estrictas. Si simplemente cancela la entrada, el código dará como resultado un error de tiempo de ejecución.
El código es el siguiente. Verifique si esto cumple con sus requisitos. El código original está en esta publicación SU
Sub exportpic()
Dim WS As Worksheet
Dim rgExp As Range
Dim CH As ChartObject
For Each WS In ThisWorkbook.Sheets
WS.Activate
Set rgExp = Application.InputBox(prompt:="Select Input Range", Type:=8)
rgExp.CopyPicture Appearance:=xlScreen, Format:=xlBitmap
Set CH = WS.ChartObjects.Add(Left:=rgExp.Left, Top:=rgExp.Top, Width:=rgExp.Width, Height:=rgExp.Height)
CH.Chart.ChartArea.Select
CH.Chart.Paste
CH.Chart.Export "C:\Temp\" & WS.Name & ".jpg"
CH.Delete
Next WS
End Sub