gpt4 book ai didi

vba - 从 VBA 自定义 ActiveX 按钮

转载 作者:行者123 更新时间:2023-12-04 20:35:13 27 4
gpt4 key购买 nike

我编写了一段代码,当您单击一个按钮时,它会复制一张工作表,将其剥离以进行格式化,然后添加一个分配有不同宏的新按钮。

我的问题是我的两个按钮都是灰色的,我想自定义它们。

第一个按钮是 Excel 控件元素,并且始终存在于原始工作表上。我已经更改了字体、字体大小、下划线并使其变为粗体,方法是右键单击它并进入格式菜单,但我找不到更改其背景颜色的选项。

第二个按钮是通过 VBA 创建的,是一个 ActiveX 按钮。添加它的代码如下

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 公开其接口(interface)所以.Object.BackColor = vbRed .

您可以使用类型化变量来获取智能感知:

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

关于vba - 从 VBA 自定义 ActiveX 按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43542282/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com