从VBA自定义ActiveXbutton

我已经做了一段代码,当你点击一个button时,复制一张纸,剥离它进行格式化,然后添加一个新的button,并分配一个不同的macros。

我的问题是,我的两个button都是灰色的,我想定制它们。

第一个button是一个Excel控件元素,并始终存在于原始图纸上。 我已经改变了字体,字体大小,下划线和粗体,通过右键单击并进入格式化菜单,但我找不到选项来更改其背景颜色。

第二个button是通过VBA创build的,是一个ActiveXbutton。 添加它的代码如下

Sub TilføjKnap() Dim Plads As Range Dim Knap As OLEObject Dim Kode As String Sheets("Indleveringsplan (2)").Activate Set Plads = ActiveSheet.Range("L7:N17") Set Knap = ActiveSheet.OLEObjects.Add(ClassType:="Forms.CommandButton.1", Link:=False, DisplayAsIcon:=False) With Knap .Name = "EksportKnap" .Object.Caption = "Eksporter til PDF" .Left = Plads.Left + 10 .Top = Plads.Top .Width = Plads.Width - 10 .Height = Plads.Height .PrintObject = False End With Kode = "Private Sub EksportKnap_Click()" & vbNewLine Kode = Kode & "Call Eksporter" & vbNewLine Kode = Kode & "End Sub" With ActiveWorkbook.VBProject.VBComponents(Worksheets("Indleveringsplan (2)").CodeName).CodeModule .InsertLines .CountOfLines + 1, Kode End With End Sub 

我假设我需要在With Knap中沿BackgroundColor的行添加一些内容,但是我无法使其工作。

也就是说,我也想强调文字,改变它的字体和字体大小,并使其大胆。

OleObject封装CommandButton并通过.Object其接口,所以.Object.BackColor = vbRed

您可以使用typesvariables来获得智能感知:

 Dim Button As CommandButton With Knap Set Button = .Object With Button .Caption = "Eksporter til PDF" .BackColor = vbRed .Font.Underline = True ... End With ... End With