I recently discovered something pretty cool. Sometimes you need to take a screenshot of your worksheet and you can do that by pressing the PrintScreen key on your keyboard. (Alt + Printscreen takes a screenshot of the active window or a dialog box) Paste it to your favorite image editing software and you are done.

What if you want to take a screenshot of a large dashboard or a data table. Yes, you can zoom out to a certain extent but I would not recommend that unless you have really nice thick glasses.

bill gates

Believe it or not, Excel allows you to take a screenshot of your selected cell range, whatever size. These instructions applies to excel 2010.

  1. Select the range you want to capture a screenshot of
  2. Go to "Home" tab on the ribbon
  3. Click the black arrow near the copy button
  4. Click "Copy as picture"
    copy as picture
  5. Here you can select if you want it "as shown on screen" or "as shown when printed".
    copy as picture1
  6. Click OK

If you enable , "As shown on screen" you can choose from "Picture" or a "Bitmap". The "Picture" setting returns a terrible image, shown here:

picture setting

The "Bitmap" setting returns a much nicer looking image:

bitmap setting

and the "As shown when printed" setting returns a really large image and I am not going to show it to you here.

Include row and column headings

It is possible to include headings but you need to select "As shown when printed" and then resize the picture in your image editing software.

  1. Go to tab "Page Setup" on the ribbon
  2. Enable check boxes for Print "Grid lines" and Print "Headings"
    toggle headings and gridlines page layout
  3. Go to tab "Home"
  4. Click arrow near the copy button
  5. Click "Copy as Picture"
  6. Select "As shown when printed"
  7. Click OK
  8. Paste the picture in your image editing software

VBA code

What does the macro recorder spit out while capturing a screenshot?

Bitmap

Selection.CopyPicture Appearance:=xlScreen, Format:=xlBitmap

Picture

Selection.CopyPicture Appearance:=xlScreen, Format:=xlPicture

Printer

Selection.CopyPicture Appearance:=xlPrinter, Format:=xlPicture

Read more: MSDN - CopyPicture method as it applies to the Range object

This macro takes a screenshot of your currently selected cell range and saves the image to c:\temp\temp.gif.

Sub SavePicToFile()
Selection.CopyPicture xlScreen, xlBitmap
    Application.DisplayAlerts = False
    Set tmp = Charts.Add
    With tmp
        .SeriesCollection(1).Delete
        .Paste
        .Export Filename:="C:\temp\temp.gif", Filtername:="gif"
        .Delete
    End With
End Sub

Take care!