Altering Textbox Colour

S

Stuart

Cannot find a way to change the colour of the 'fill'
in a textbox.

ElseIf oleObj.Name = "Control 2" Then
With oleObj
.Visible = True
.Enabled = True
.Interior.ColorIndex = 34
'get the cursor in the textbox
.Activate
End With
End If

will run without error, but with no apparent change to the
textbox. Tried BackColor too.

I need to be able to toggle between ColorIndexes
2 and 34. How is this done, please?

Regards.
 
P

Peter T

If your TextBox is from the Controls Toolbox menu, it only
accepts a long RGB colour, or a System colour, try:

oleObj.Object.BackColor = ThisWorkbook.Colors(34)

You may or may not need the ".Object" depending on how
oleObj has been set and whether it is a textbox on a sheet
or on a form.

(Textboxes from the Drawing toolbar have different
properties, incl .Interior.Colorindex
and .Fill.Backcolor.Schemecolor).

Regards,
Peter
 
K

kkknie

The .Interior.ColorIndex is associated with an excel cell, not
textbox, so it doesn't apply here.

If this is a textbox from the controls toolbar and is put onto
worksheet (since I cannot seem to get a forms textbox to go onto
worksheet), you would use this format:

TextBox1.BackColor = RGB(0, 128, 64)

Check out the BackColor and RGB in VB Help to get the specifics.
 
P

Peter T

kkknie,
The .Interior.ColorIndex is associated with an excel
cell, not a textbox, so it doesn't apply here.

Create a Textbox from the Drawing toolbar, select it and
try these:

Selection.Interior.ColorIndex = 3
Selection.ShapeRange.Fill.ForeColor.SchemeColor = 50
If this is a textbox from the controls toolbar and is put
onto a>worksheet (since I cannot seem to get a forms
textbox to go onto a worksheet), you would use this
format:

TextBox1.BackColor = RGB(0, 128, 64)

This is applying a Long RGB, as I previously suggested

Regards,
Peter
 
C

Chip Pearson

Try something like

OleObj.Object.BackColor = ThisWorkbook.Colors(34)


--
Cordially,
Chip Pearson
Microsoft MVP - Excel
Pearson Software Consulting, LLC
www.cpearson.com
 
S

Stuart

Many thanks all, for the help.

Regards.

Peter T said:
If your TextBox is from the Controls Toolbox menu, it only
accepts a long RGB colour, or a System colour, try:

oleObj.Object.BackColor = ThisWorkbook.Colors(34)

You may or may not need the ".Object" depending on how
oleObj has been set and whether it is a textbox on a sheet
or on a form.

(Textboxes from the Drawing toolbar have different
properties, incl .Interior.Colorindex
and .Fill.Backcolor.Schemecolor).

Regards,
Peter
 
Top