VBA: Change Font & Back colour of ActiveX Textbox - excel

I have a TextBox just on the worksheet , I barely have tried everything to change Font and Back colours of it , but seems like can change only if TextBox is part of UserForm
Will be very appreciate for answers

To change the font color, let's say to red, try . . .
Worksheets("Sheet1").OLEObjects("TextBox1").Object.ForeColor = RGB(255, 0, 0)
To change the back color, let's say to blue, try . . .
Worksheets("Sheet1").OLEObjects("TextBox1").Object.BackColor = RGB(0, 112, 192)
Change the worksheet name and the RGB colors accordingly.

Related

Change ComboBox Color of the Drop Down Button

Im actually working on a VBA Excel Project. We have some requirements for the Color style of the whole sheet.
I designed a UserForm and it was possible to change all colors, except from the Drop Down Button of the ComboBox.
With these commands i can set the colors of Foreground, Background and Border:
Controls("ComboBox1").ForeColor = RGB(255, 255, 255)
Controls("ComboBox1").BackColor = RGB(0, 0, 0)
Controls("ComboBox1").BorderColor = RGB(160, 131, 101)
But i am not able to change the Drop Down button itself.. I searched a while but cant find anything..
Does anyone have an idea how to change this? Or is it set by Windows and not possible to change? Like this it looks a little ugly..
Thanks in Adance & best regards

Control Shape Gradient Properties via VBA

I'm trying to find a means of controlling the Gradient fill properties of a 'shape' in Excel 2016. I have 8 shapes (called Shape1-8) which will act as colour swatches for the gradient of a MASTER shape. The positioning of each swatch (gradient stop) will (eventually) be controlled via either spinners / scrollbars.
Couldn't find much online soo I turned to the good old 'Record Macro' whilst I tried to reverse engineer the functionality. This is were the problems began...
So I constructed a simple 2 colour gradient, Black to White.
Then added a third colour, Red.
Moved the Red stop from default 50% to 83%
Then added a fourth colour, yellow
With Selection.ShapeRange.Fill
.Visible = msoTrue
.ForeColor.RGB = RGB(0, 0, 0)
.BackColor.RGB = RGB(250, 250, 250)
.TwoColorGradient msoGradientHorizontal, 1
End With
Selection.ShapeRange.Fill.Visible = msoTrue 'Added Red
Selection.ShapeRange.Fill.Visible = msoTrue 'Moved Red from 50% to 83%
Selection.ShapeRange.Fill.Visible = msoTrue 'Added Yellow
I was hoping to find a means to pull existing colour from Swatch Shape (1-8) to update the associated Gradient Stop (1-8) in the MASTER, like so....
...Shape("Master").Gradient1.backcolor.fill = ...Shape("Swatch1").Backcolor.fill
without having to code the RGB passing from the swatch controls
...Shape("Swatch1").BackColor.RGB = RGB(TextRed.value, TextGreen.value, TextBlue.value)
into
...Shape("Master").Gradient1.BackColor.RGB = RGB(TextRed.value, TextGreen.value, TextBlue.value)

How to change the color of a bullet in a bullet list?

I am trying to change the colour of a bullet point using VBA, but keep getting stuck. I want to make all the bullet points in a bullet list blue instead of black.
In Word you can not simply set the ParagraphFormat.Bullet.Font.Color (as in PowerPoint), but assign another style, e. g.
Selection.ParagraphFormat.Style = "List with red buttons"
Microsoft explains you alter its ParagraphFormat, using code similar to:
With Application.ActivePresentation.Slides(1).Shapes(2).TextFrame
With .TextRange.ParagraphFormat.Bullet
.Visible = True
.RelativeSize = 1.25
.Font.Color = RGB(255, 0, 255)
End With
End With
And, here's a color picker so you may get just the precise shade desired, translated into the RGB format (xxx,yyy,zzz) required.

Marlett font missing from VBA object properties

I want to place a green tick mark on a userform and thought that creating a label with the caption "a" in Marlett font would do the trick. However, Marlett isn't showing up in the object properties despite definitely being installed. I can easily place the tick mark in a cell, but not in a label. Is there a way to enable it for userforms?
There is an answer to the same problem in the c# section - How do I set button font to Marlett, but I'm not sure if it can be applied to VBA as well.
It's as simple as putting:
Label1.Font.Name = "Marlett"
Label1.Caption = "a"
(important: this code only seems to work if you set the font before setting the caption; setting the caption first seems to prevent setting the font from having an effect - thanks to #N.N.Thoughts for the info)
in the Userform_Initialize event of your userform. Replace Label1 with the name of the actual control
edit: with the addition of code to set the font size and colour:
Label1.Font.Size = "32"
Label1.ForeColor = RGB(0, 255, 0)

Change backcolor of shape

I'm trying to update the backcolor of all of the labels that I have on a worksheet. I'd like to indicate the color using the RGB values, but I'm stuck in two places. Here is the code that I have right now:
Sheet2.Shapes("Label 2").Fill.BackColor.RGB = RGB(220, 105, 0)
This code will run without error, but it seems to have no effect. My label starts out white (or maybe transparent) and never changes. Can anyone tell me what I need to do to make this work? I also added this but it did nothing:
shp.Fill.Solid
Next, I'd like to capture this RGB value in a variable so that I don't have to re-type of repeatedly. Essentially, I'm looking for something like this:
dim col as Color
col = RGB(220,105,0)
Sheet2.Shapes("Label 2").Fill.BackColor.RGB = col
I know that there is no variable type called Color, but I think you can see what I am trying to do.
Try setting the ForeColor instead:
Sheet2.Shapes("Label 2").Fill.ForeColor.RGB = RGB(220, 105, 0)
A good way to figure out what to do is to record a macro while you make the adjustment yourself. You can examine the generated code afterward and use it as a starting point.
Here is an example of a procedure that will add a rectangle to the activesheet, add some text to it, and then color it with your RGB values:
Public Sub AddRectangleWithText()
Dim textRectangle As Shape
Set textRectangle = ActiveSheet.Shapes & _
.AddShape(msoShapeRectangle, 10, 80, 250, 50)
' add your text
textRectangle.TextFrame.Characters.Text = "Your mother was a hamster."
' fill the shape with the rgb color of your choice
textRectangle.Fill.ForeColor.RGB = RGB(220, 105, 0)
End Sub
ForeColor actually controls the backcolor of comment/textbox(s) in Excel as follows;
Activecell.Comment.Shape.Fill.ForeColor.RGB = RGB(240, 255, 250)
'Mint Green
as the Comment/TextBox ForeColor is a foreground fill over the Applicatoin background color.
I needed to add
textRectangle.Fill.Visible = msoTrue
in Office 2016 for
textRectangle.Fill.ForeColor.RGB = RGB(220, 105, 0)
to have an effect.

Resources