Excel.Tips.Net Welcome toExcel.Tips.Net

Helpful Links

Tips.Net Home
ExcelTips Home
Ask an Excel Question
Make a Comment

Tips.Net Store

ExcelTips FAQ
ExcelTips Premium

Learn Access Now
Free Printable Forms

Beauty Tips
Car Tips
Cleaning Tips
College Tips
Cooking Tips
Excel2007 Tips
ExcelTips
Family Tips
Gardening Tips
Health Tips
Home Tips
Legal Tips
Money Tips
Organizing Tips
Pest Tips
Pet Tips
Wedding Tips
Word2007 Tips
WordTips

Advertise on the
ExcelTips Site

Newest Tips

Converting to Octal

Filtering Columns for Unique Values

Printing Multiple Worksheets on a Single Page

Changing the Default Font

Creating a Drawing Object

Determining a Value of a Cell

Understanding Macros

 

Exporting Black and White Charts

Summary: Excel's charts are normally created in color, but you can print them in black and white. You may be looking for a way to export the black and white version of a chart so that it can be used in a different program. This tip explains the different ways you can accomplish your desire. (This tip works with Microsoft Excel 97, Excel 2000, Excel 2002, and Excel 2003.)

Excel allows you to create charts in full color. When you get ready to print the chart, you can instruct Excel to print it in "black and white" (via File | Page Setup | Chart | Print in Black and White). You may wonder if there is a way to export this "black and white" version of the chart, so that you can work with it in a different program.

The answer is that you cannot do this, at least not directly. To understand why this is, you must understand how the "print in black and white" feature works. This feature only affects what is sent to the printer driver (to your printer), it doesn't affect the actual chart at all. Even when you click on Print Preview, you are not viewing your actual chart, but a representation of what your chart will look like when printed. Thus, you are seeing printer output, not the real chart.

If you want to export a black and white version of your chart, there are several ways to accomplish the task. The first is to simply view the chart in Print Preview and do a screen capture (press Alt+Print Screen). You can then paste the screen into your favorite graphics program and touch it up, as desired.

If you want to export the chart instead of just capturing the screen, then you should change the colors of the chart so that they really are grayscale and contain the same patterns you would see if you chose to print in black and white. This approach actually changes the source for the chart, rather than relying on Excel to do a transformation of the chart when you print. Once you get done making the formatting changes, you can even save the chart as a "chart type" so you can use it as a pattern for other charts you create.

If desired, you can also use a macro to convert between color and grayscale chart presentation. This approach is highly dependent on the colors you want to use in the chart, the type of chart you are using, and the number of data series in the chart. The following is an example of a macro that will toggle the colors in a data series between color and black and white, for up to five data series.

Option Explicit
Public bColored As Integer

Sub ColoredToBW()
    Dim cht As Chart
    Dim chtSC As SeriesCollection
    Dim x As Integer
    Dim iSeriesCount As Integer
    Dim iColors(1 To 5, 0 To 1) As Integer
    Dim iColor As Integer

'Set colors for BW series
    iColors(1, 0) = 1 'Black
    iColors(2, 0) = 56 'Gray-80%
    iColors(3, 0) = 16 'Gray-50%
    iColors(4, 0) = 48 'Gray-40%
    iColors(5, 0) = 15 'Gray-25%

'Set colors for Color series
    iColors(1, 1) = 55 'Indigo
    iColors(2, 1) = 7 'pink
    iColors(3, 1) = 6 'yellow
    iColors(4, 1) = 8 'Turquoise
    iColors(5, 1) = 13 'Violet

'Toggle Color/BW change 0 to 1 or 1 to 0
    bColored = 1 - bColored

    Set cht = ActiveChart

'check that a chart is selected
    If cht Is Nothing Then
        MsgBox ("Select a chart")
        Exit Sub
    End If

    Set chtSC = cht.SeriesCollection

    'Check for MIN of number of series or
    'colors and only do the minimum
    iSeriesCount = Application.WorksheetFunction.Min _
      (UBound(iColors), chtSC.Count)

    For x = 1 To iSeriesCount
        'Define the color
        iColor = iColors(x, bColored)

        'Set the LINE color
        chtSC(x).Border.ColorIndex = iColor

        'Marker color
        With chtSC(x)
            .MarkerBackgroundColorIndex = xlNone
            .MarkerForegroundColorIndex = iColor
        End With
    Next x
End Sub

This example will not work with all chart types; you will need to modify it to reflect your needs. It will, however, serve as a starting point for making your own macro.

ExcelTips is your source for cost-effective Microsoft Excel training. This tip (2204) applies to Microsoft Excel versions: 97 | 2000 | 2002 | 2003

PivotTables Got You Perplexed? PivotTables for the Faint of Heart shows how you can start using Excel's PivotTable tool right away to spin your data into gold! You discover how easy it really is to crunch the numbers you need to crunch. Uncover the power of creating PivotTables, editing them, formatting them, customizing them, and much more.
 
Check out PivotTables for the Faint of Heart today!