Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 7
Default Set Formatting Menu Font Color with VBA

I'd like to use a VBA Macro to assign the active color of the "&Font
Color" Control on the standard Formatting toolbar (XL 2003)

Can someone point me towards documentation that will help me (or post
a solution)?

cm
  #2   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 5,600
Default Set Formatting Menu Font Color with VBA

AFAIK there is no straightforward way to do that.

It's hard enough to return the current colour of the Fill or Font dropdown
(I posted a method in this ng). To change it would probably require much of
the same method and then involve SendKeys, at least I assume that'd be the
only way.

Regards,
Peter T

"Clare.Moe" wrote in message
...
I'd like to use a VBA Macro to assign the active color of the "&Font
Color" Control on the standard Formatting toolbar (XL 2003)

Can someone point me towards documentation that will help me (or post
a solution)?

cm



  #3   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 7
Default Set Formatting Menu Font Color with VBA

On Feb 12, 2:29*am, "Peter T" <peter_t@discussions wrote:
AFAIK there is no straightforward way to do that.

It's hard enough to return the current colour of the Fill or Font dropdown
(I posted a method in this ng). To change it would probably require much of
the same method and then involve SendKeys, at least I assume that'd be the
only way.

Regards,
Peter T

"Clare.Moe" wrote in message

...



I'd like to use a VBA Macro to assign the active color of the "&Font
Color" Control on the standard Formatting toolbar (XL 2003)


Can someone point me towards documentation that will help me (or post
a solution)?


cm- Hide quoted text -


- Show quoted text -


thanks. I was afraid of that.

btw; I couldn't find this thread this morning --- but obviously it was
out there! Is a 'lost' posting that's not lost, just invisible to
google search groups common?

That's why i re-posted my question under a different topic -- I
couldn't remember exactly what I'd said!

I found this looking under "My Profile"

go figure.

cm
  #4   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 7
Default Set Formatting Menu Font Color with VBA

On Feb 12, 2:29*am, "Peter T" <peter_t@discussions wrote:
AFAIK there is no straightforward way to do that.

It's hard enough to return the current colour of the Fill or Font dropdown
(I posted a method in this ng). To change it would probably require much of
the same method and then involve SendKeys, at least I assume that'd be the
only way.


Thanks again, Peter. I've now looked at the discussion you
referenced .... more than I'm ready to dig into right now <g

cm
  #5   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 6,582
Default Set Formatting Menu Font Color with VBA

Google Groups used to be pretty good, but in the past couple years they've
fixed it, and now often unrelated threads are linked together, and sometimes
the thread will seem to start in the middle, omitting the first post. I also
find it harder to find my old posts (I don't use a Google Groups account),
while before the change is was easy to find them.

- Jon
-------
Jon Peltier, Microsoft Excel MVP
Tutorials and Custom Solutions
Peltier Technical Services, Inc. - http://PeltierTech.com
_______


"Clare.Moe" wrote in message
...
On Feb 12, 2:29 am, "Peter T" <peter_t@discussions wrote:
AFAIK there is no straightforward way to do that.

It's hard enough to return the current colour of the Fill or Font dropdown
(I posted a method in this ng). To change it would probably require much
of
the same method and then involve SendKeys, at least I assume that'd be the
only way.

Regards,
Peter T

"Clare.Moe" wrote in message

...



I'd like to use a VBA Macro to assign the active color of the "&Font
Color" Control on the standard Formatting toolbar (XL 2003)


Can someone point me towards documentation that will help me (or post
a solution)?


cm- Hide quoted text -


- Show quoted text -


thanks. I was afraid of that.

btw; I couldn't find this thread this morning --- but obviously it was
out there! Is a 'lost' posting that's not lost, just invisible to
google search groups common?

That's why i re-posted my question under a different topic -- I
couldn't remember exactly what I'd said!

I found this looking under "My Profile"

go figure.

cm




  #6   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 5,600
Default Set Formatting Menu Font Color with VBA

"Clare.Moe" wrote:

Thanks again, Peter. I've now looked at the discussion you
referenced .... more than I'm ready to dig into right now <g


You were more curious than I expected :-)

Hope you have a good reason for this but try the following -

Option Explicit
'' Set displayed colour in the Fill or Font dropdown
'' pmbthornton at gmail com

Private Declare Function SetCursorPos Lib "user32" ( _
ByVal x As Long, ByVal y As Long) As Long

Private Declare Sub mouse_event Lib "user32" _
(ByVal dwFlags As Long, _
ByVal dx As Long, ByVal dy As Long, _
ByVal cButtons As Long, ByVal dwExtraInfo As Long)

Private Const MOUSEEVENTF_LEFTDOWN = &H2
Private Const MOUSEEVENTF_LEFTUP = &H4


Sub SetPaletteColor(FillOrFont As String, clrIndex As Long)
'FillOrFont: "Fill" or "Font"
'clrIndex: 1-56 or 0

Dim x As Long, y As Long, b As Boolean
Dim rw As Long, cl As Long
Dim sName As String
Dim va(0 To 4)
Static cbr As CommandBar
Static oldLeft As Long, oldTop As Long, bVis As Boolean
Static rng As Range
Static oldFill As Long, oldFont As Long

If clrIndex = -1 Then ' called with OnTime

'dont know why but seems can only reset old cell colours with Ontime
If Not rng Is Nothing Then
ActiveCell.Interior.ColorIndex = oldFill
ActiveCell.Font.ColorIndex = oldFont
rng.Select
End If

' also if want to reset the dropdown it must be done with Ontime
If Not cbr Is Nothing Then
With cbr
.Visible = bVis
.Left = oldLeft
.Top = oldTop
End With
End If

Set cbr = Nothing
Set rng = Nothing
Exit Sub
End If

sName = IIf(FillOrFont = "Font", "Font Color", "Fill Color")

If TypeName(Selection) < "Range" Then
MsgBox "Select one or more cells", , "SetPaletteColor"
Exit Sub
End If

Set rng = Selection
' ensure only one cell selected
ActiveCell.Select
' trap the old colour
oldFill = ActiveCell.Interior.ColorIndex
oldFont = ActiveCell.Font.ColorIndex

If clrIndex < 1 Or clrIndex 56 Then ' automatic/none
x = 82: y = 35 ' pixels to center of the auto/no-fill
Else
va(0) = Array(1, 53, 52, 51, 49, 11, 55, 56)
va(1) = Array(9, 46, 12, 10, 14, 5, 47, 16)
va(2) = Array(3, 45, 43, 50, 42, 41, 13, 48)
va(3) = Array(7, 44, 6, 4, 8, 33, 54, 15)
va(4) = Array(38, 40, 36, 35, 34, 37, 39, 2)
'first get the row/col location of the colorIndex in the palette
For cl = 0 To 7
For rw = 0 To 4
If clrIndex = va(rw)(cl) Then
b = True
Exit For
End If
Next
If b Then Exit For
Next

cl = cl + 1
rw = rw + 1

' pixels to centre of the appropriate colour in the palette
x = cl * 18
y = 40 + rw * 18
End If

Set cbr = Application.CommandBars(sName)
With cbr
' make the fill or font dropdown palette visible, move to Top-Left
bVis = .Visible
.Visible = True
oldLeft = .Left
oldTop = .Top
.Left = 0
.Top = 0
End With

' move mouse over the colour
SetCursorPos x, y

' simulate mouse down & up

Call mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0)
Call mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0)

'for some weird reason the old colour does not reapplied,
'hence the OnTime
ActiveCell.Interior.ColorIndex = oldFill
ActiveCell.Font.ColorIndex = oldFont

End Sub

Sub test()
Dim sMacro As String

' Application.ScreenUpdating = False ' doesn't seem to help

SetPaletteColor FillOrFont:="Font", clrIndex:=3

sMacro = "' SetPaletteColor " & _
Chr(34) & "" & Chr(34) & ", " & -1 & "' "

Application.OnTime Now, sMacro ' reset cell colour & the dropdown

' Do not attempt to change both Fill & Font dropdowns at the same time
' as the OnTime(s) only fire after all normal code completes.

End Sub

Can't avoid the dropdown flashing momentarirly to topleft of screeen. It
should be possible to re-work some aspects to avoid the current need to
reset the dropdown and cell colour with OnTime (I ran out of time!).

Regards,
Peter T


  #7   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 7
Default Set Formatting Menu Font Color with VBA

On Feb 13, 7:07*am, "Peter T" <peter_t@discussions wrote:
"Clare.Moe" wrote:
Thanks again,Peter. I've now looked at the discussion you
referenced .... more than I'm ready to dig into right now <g


You were more curious than I expected :-)

Hope you have a good reason for this but try the following -

<snip

Whoo boy!

That'll take a bit of time for this rusty programmer to sort through
<g

Likley be instructive, tho; I suspect I'll tackle it (someday) <g

Thanks, Peter!

cm
  #8   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 7
Default Set Formatting Menu Font Color with VBA

On Feb 12, 9:58*pm, "Jon Peltier"
wrote:
Google Groups used to be pretty good, but in the past couple years they've
fixed it, and now often unrelated threads are linked together, and sometimes
the thread will seem to start in the middle, omitting the first post. I also
find it harder to find my old posts (I don't use a Google Groups account),
while before the change is was easy to find them.

- Jon


Thanks, Jon.

Even considering irritating difficulties using Google Groups I'm
finding a treasure trove in the community here! It's definitely worth
my while to browse and search!

cm
Reply
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules

Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
Conditional Format for font color using font color Jim Excel Worksheet Functions 2 August 29th 09 11:54 AM
Change Font Color Based on Conditional Formatting tj Excel Worksheet Functions 8 October 11th 08 02:08 AM
Changing Font color based on font type or size John Excel Discussion (Misc queries) 2 February 7th 08 12:50 AM
Formatting color and font to a logical statement result? STRAC Excel Worksheet Functions 7 January 17th 08 09:52 PM
Check Font or Font color and take action MSPLearner Excel Programming 3 November 15th 06 11:31 AM


All times are GMT +1. The time now is 01:30 PM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Copyright ©2004-2025 ExcelBanter.
The comments are property of their posters.
 

About Us

"It's about Microsoft Excel"