从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