Modifiquei levemente o código mencionado para fazer o seguinte.
Loop através de todas as folhas
Peça para usar o Intervalo de entrada para capturar a captura de tela
Salve o Sheetname.jpg na pasta C: \ Temp. O nome do arquivo é Sheetname com extensão .jpg
Observe que isso não irá capturar nenhum objeto incorporado, por exemplo, Formas inseridas ou Imagens, etc. Ele capturará apenas a captura de tela do intervalo de células inseridas para cada folha. Além disso, não há validações rigorosas. Se você simplesmente cancelar a Entrada, o código resultará em um erro de tempo de execução.
O código é o seguinte. Verifique se isso atende aos seus requisitos. O código original está neste Post 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