Author: Oscar Cronquist Article last updated on May 04, 2018

I recently discovered something quite useful. Allow me to explain, sometimes you need to take a screenshot of your worksheet and you can do that by simply pressing the PrintScreen key on your keyboard.

Paste it into your favorite image editing software and you are done.

However, what if you want to take a screenshot of a large dashboard or a dataset?  Yes, you can zoom out to a certain extent but eventually, the font size will be too small.

Believe it or not, Excel actually allows you to take a screenshot of the selected cell range, whatever size.

It can be very useful as an attachment in an email when you don't want to send the entire workbook.

I also demonstrate a macro, later in this article, that automatically saves the screenshot to a folder you specify.

There is a macro-enabled file for you to download at the end of this article.

Check out the macro category for more useful VBA subroutines.

Screenshot of a large cell area

  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

Copy picture - Format Picture

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

Copy picture - Format Bitmap

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, for obvious reasons.

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

Copy picture VBA macro

What does the macro recorder spit out while creating an image of a cell range?

Bitmap

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

Picture

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

Printer

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

Print screen and save the picture to a folder automatically

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

Download Excel *.xlsm file