PowerPoint Color Schemes in PowerPoint 2000 and PowerPoint 2003

S

ssaad

We have some VB code (.bas files macros) which we execute to create
PowerPoint presentations. We have been using PowerPoint 2000 and the
line

chartProxy.PlotArea().Fill().ForeColor().SchemeColor = 21

gives us a gray background for a chart. After switching to PowerPoint
2003 we have found that the background is now green. We cycled through
the different color schemes and found 15 and 46 give us shades of gray
slightly different than the gray that we get with 21 using PowerPoint
2000.
The questions we have are:

- The color schemes appear changed in PowerPoint 2003 as versus
PowerPoint 2000. Is there any documentation available anywhere
regarding this change?
- We've tried to get the exact gray which we get using PowerPoint 2000
and 21 as the scheme color by using RGB values but keep getting errors.
We've tried the following:

chartProxy.PlotArea().Fill().ForeColor.RGB = RGB(0,0,128)

and some other variations and could not make it work. We are not VB
programmers and so are not sure what we are doing wrong. We don't have
access to Visual Studio and are trying to run this code from within the
VB editor in PowerPoint. Any help would be much appreciated!
 
S

Steve Rindsberg

We have some VB code (.bas files macros) which we execute to create
PowerPoint presentations. We have been using PowerPoint 2000 and the
line

chartProxy.PlotArea().Fill().ForeColor().SchemeColor = 21

gives us a gray background for a chart. After switching to PowerPoint
2003 we have found that the background is now green. We cycled through
the different color schemes and found 15 and 46 give us shades of gray
slightly different than the gray that we get with 21 using PowerPoint
2000.
The questions we have are:

- The color schemes appear changed in PowerPoint 2003 as versus
PowerPoint 2000. Is there any documentation available anywhere
regarding this change?

Not that I'm aware of, but you can make a screenshot of the MSGraph color
palette, then use an image editing program to sample the colors if you want the
RGB values. Or use a screen sampling app like Pixie to show the colors as you
go.

But here's what I think is happening: generally, the MSGraph colors are
independent of those in PPT, but Graph automatically picks up a few colors from
the current PowerPoint color scheme. Index #21 is one of those ... it picks up
the Shadow color, so if you set the plot area to color #21, it'll always follow
the Shadow color in the current slide's color scheme.
- We've tried to get the exact gray which we get using PowerPoint 2000
and 21 as the scheme color by using RGB values but keep getting errors.
We've tried the following:

chartProxy.PlotArea().Fill().ForeColor.RGB = RGB(0,0,128)

You can't set chart colors to any arbitrary value, unfortunately.
Doing so won't provoke an error, but it just won't work.
and some other variations and could not make it work. We are not VB
programmers and so are not sure what we are doing wrong. We don't have
access to Visual Studio and are trying to run this code from within the
VB editor in PowerPoint. Any help would be much appreciated!


Have a look here for a good bit of useful info about MS Graph colors:

MSGraph Colors -- The Periodic Table of the Graph
http://www.rdpslides.com/pptfaq/FAQ00777.htm
 
S

ssaad

Thanks so much. Your post helped clarify things. It appears that it's
not possible to set an exact RGB value for a chart background. The best
we can do is change the color scheme.
However, is it possible to set the shadow color in the PowerPoint
presentation at index 21 to a specific RGB value programmatically in
the macro? i.e can we make 21 point to another color programmatically?
I am still confused as to why 21 suddenly maps to a different color in
PPT 2000 as versus PPT 2003? Has Microsoft changed the colors available
in the color schemes or is there something we need to configure in PPT
2003 to make things the same?
 
S

Steve Rindsberg

Thanks so much. Your post helped clarify things. It appears that it's
not possible to set an exact RGB value for a chart background. The best
we can do is change the color scheme.

That's correct.
However, is it possible to set the shadow color in the PowerPoint
presentation at index 21 to a specific RGB value programmatically in
the macro? i.e can we make 21 point to another color programmatically?

21 will always map to whatever color is set in the slide color scheme, Shadow
color.

You can change the color scheme's Shadow color OR you can set the plot area to
a different color index; colors 17-22 will change when the PPT slide color
scheme changes; the others are pretty well fixed. The "Periodic Table of the
Graph" PPT file at the link I sent you earlier gives the RGB, Long and
ColorIndex values for each of the colors on the Graph palette.
I am still confused as to why 21 suddenly maps to a different color in
PPT 2000 as versus PPT 2003?

Are you certain it does? It seems more likely that the color scheme is
different. Setting the colorindex to 21 simply locks the color to whatever's
set for the current slide's Shadow color scheme entry. That hasn't changed
since PPT97 and maybe earlier.
Has Microsoft changed the colors available
in the color schemes or is there something we need to configure in PPT
2003 to make things the same?

I can't tell from here. Look at the color scheme for your presentation or for
the specific slides in the presentation.
 
S

ssaad

Thanks Steve:

As I understand it, the behaviour of how MSGraph and the color schemes
are related has not changed but the color scheme used by default could
be different. Actually we have looped through all 60 color schemes and
could not get the exact same gray so I take it that this would mean
that Microsoft has updated and changed the list of color schemes
available.
The only thing for me to try would be to programmatically try to modify
the colors in one of the available color schemes and then use the
changed one. Do you know if this is possible?

Thanks
 
S

Steve Rindsberg

Thanks Steve:

As I understand it, the behaviour of how MSGraph and the color schemes
are related has not changed but the color scheme used by default could
be different.

It doesn't seem so ... a blank presentation in both PowerPoint 2000 and 2003
comes up with the shadow color set to RGB 128, 128, 128 here.

If you're using a customized template or anything but the blank template,
things could be different, of course.
Actually we have looped through all 60 color schemes and
could not get the exact same gray so I take it that this would mean
that Microsoft has updated and changed the list of color schemes
available.

60??? good grief, where'd you find that many?
The only thing for me to try would be to programmatically try to modify
the colors in one of the available color schemes and then use the
changed one. Do you know if this is possible?

Piece of cake.

For an individual slide referenced as oSl

oSl.ColorScheme.Colors(ppShadow) = RGB(128,128,128) ' or other value

For example, given a slide with a graph that has the plot area already set to
21, you can run this to see if the color changes:

Sub Test()
With ActiveWindow.Selection.SlideRange(1).ColorScheme
.Colors(ppShadow) = RGB(200,100,100)
End With
End Sub
 
S

ssaad

I've been wrong about the property we're setting. It's actually the
fill and not the shadow. My mistake since I mentioned 20 and we are
really using 21. I'm going to try the code you posted and I'll just
replace ppShadow with ppFill. I will post back to let you know how it
went. I do really appreciate the help!
 
S

Steve Rindsberg

I've been wrong about the property we're setting. It's actually the
fill and not the shadow. My mistake since I mentioned 20 and we are
really using 21. I'm going to try the code you posted and I'll just
replace ppShadow with ppFill. I will post back to let you know how it
went. I do really appreciate the help!

You really DO want to follow up on that link I sent earlier.
Download the "Periodic Table of the Graph" PPT and have a look.
It'll save you a lot of time and trouble.

For example, it'll explain that ppFill is mapped to color 17, not 20 or 21 <g>.

And it shows you where the color falls on the Graph palette.
 
S

ssaad

It's finally working for me. The key to understanding the whole thing
is that 17 corresponds to fill. The code which finally worked is:

slide1.ColorScheme.Colors(ppFill) = RGB(100, 100, 250)
chartProxy.PlotArea().Fill().ForeColor().SchemeColor = 17

It's not difficult to do this but the lack of documentation regarding
the relationship of MSGraph to PowerPoint Color Schemes make for a
tough guessing game as to what needed to be done. Thanks for all your
help, I really needed it to get this going,
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top