Image recolor with VBA

N

Nik

Hi all,

does anybody know what's the VBA method to obtain the same effect of
recoloring a bitmap inserted on a worksheet ? if you place a picture
on a sheet with Insert | Picture, then right click on it and select
Picture format | Picture | Recolor (select anyone) the picure is
recolored applying a transparent layer of the selected color on it.
How to obtain the same effect with VBA ? I cannot find the right
method.
thanks in advance
Nik

PS : I'am using XL2007 in Italian, command translations could be
slightly different, sorry
 
G

GS

Nik explained :
Hi all,

does anybody know what's the VBA method to obtain the same effect of
recoloring a bitmap inserted on a worksheet ? if you place a picture
on a sheet with Insert | Picture, then right click on it and select
Picture format | Picture | Recolor (select anyone) the picure is
recolored applying a transparent layer of the selected color on it.
How to obtain the same effect with VBA ? I cannot find the right
method.
thanks in advance
Nik

PS : I'am using XL2007 in Italian, command translations could be
slightly different, sorry

Did you try using the macro recorder?
 
M

Martin Brown

Nik explained :

Did you try using the macro recorder?

On XL2007 ? You have to be kidding. It is complete junk on that version.

If you are *very* lucky it might at best produce something that is
syntactically valid called Macro1() but doesn't work and at worst it
will crash at runtime in a hopeless mess.

I'd hazard a guess it is something in or near .ShapeRange.Fill but it
may require some trial and error on your part to find it and make it
behave as you would like. Don't expect any help from the help system :(

Regards,
Martin Brown
 
G

GS

Martin Brown used his keyboard to write :
On XL2007 ? You have to be kidding. It is complete junk on that version.

If you are *very* lucky it might at best produce something that is
syntactically valid called Macro1() but doesn't work and at worst it will
crash at runtime in a hopeless mess.

I'd hazard a guess it is something in or near .ShapeRange.Fill but it may
require some trial and error on your part to find it and make it behave as
you would like. Don't expect any help from the help system :(

Regards,
Martin Brown

Well stated!
I'd probably use an earlier version and record manual steps just to get
the right object refs, then rewrite into something more formidable.<g>
 
N

Nik

I did try to use the 2007 macro recorder, nothing gets recorded
unfortunately. I also tried 2003 but that method wasn't available at
that time.Thanks for suggesting. ShapeRange.Fill, I'll try that too.
Nik
 
I

isabelle

hi Nik and All,

the following code works on XL2002, i hope it will work for xl2007

Sub Macro1()
With Worksheets(1).Shapes("Picture 1").Fill
.Visible = True
.BackColor.RGB = RGB(170, 170, 170)
.Transparency = 0.99
End With
End Sub
 
N

Nik

Thank you Isabelle,

Your code seems formally correct, no errors in macro, but when run
nothing happens.
Nik
 
R

rwryne

Hi all,

does anybody know what's the VBA method to obtain the same effect of
recoloring a bitmap inserted on a worksheet ? if you place a picture
on a sheet with Insert | Picture, then right click on it and select
Picture format | Picture | Recolor (select anyone) the picure is
recolored applying a transparent layer of the selected color on it.
How to obtain the same effect with VBA ? I cannot find the right
method.
thanks in advance
Nik

PS : I'am using XL2007 in Italian, command translations could be
slightly different, sorry

Really late to this convo, but in case anyone stumbles across this....

For whatever reason, Microsoft hasn't 'exposed' the recolor method in Excel/PowerPoint. You can do it manually using the ribbon, but not via VBA. The method is exposed in Publisher.

http://msdn.microsoft.com/en-us/library/office/ff939364(v=office.15).aspx
 

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