使用 VBA 从 Excel 中 sheet 上的 OLEObject 删除边框
Remove border from OLEObject on sheet in Excel with VBA
我正在使用 VBA 生成包含 ActiveX 表单控件的 Excel sheet。但是,可用于对象属性的文档相当粗略。我注意到,例如,当我创建一个 OptionButton 控件时,该对象包含一个纯白色边框。我可以手动进入设计模式;右键点击; "Format Object",然后在对话框的 "Colors and Lines" 选项卡下,将填充(自动)更改为 "No Fill"。请参阅以下示例:
但是我还没有想出如何通过代码来做到这一点。请看以下内容:
Dim sht as Sheet
Set sht = [WorkbookObject].Sheets(1)
With sht
.OLEObjects.Add(ClassType:="Forms.OptionButton.1", Left:=4.5, Top:=34.5, Width:=105, Height:=15).Name = "RadioB_1"
With .OLEObjects("RadioB_1").Object
.Caption = "First Option"
.GroupName = "ColumnFilter"
.BackColor = RGB (128, 128, 128)
.BackStyle = 1
End With
' The above all works fine, however I can't find the correct property
' for the border fill. I have tried various properties for
' .OLEObjects("RadioB_1") and for .OLEObjects("RadioB_1").Object
' however I can't find the correct property.
End With
Excel 的对象浏览器没有给我太多线索。
我也看过
MSDN's Article on OLE Object Properties,但是似乎没有任何东西可以满足我的需要。
啊哈..!进行了更多搜索,我找到了自己问题的答案:
sht.OLEObjects("RadioB_1").ShapeRange.Fill.Transparency = 1
ShapeRange 列在该 MS 页面上,但是它的名称具有误导性,并且官方文档中仍然没有任何地方实际列出所有属性及其作用!无论如何 - 我决定 post 我自己的问题的答案,以供将来寻找此问题的任何人使用。
我正在使用 VBA 生成包含 ActiveX 表单控件的 Excel sheet。但是,可用于对象属性的文档相当粗略。我注意到,例如,当我创建一个 OptionButton 控件时,该对象包含一个纯白色边框。我可以手动进入设计模式;右键点击; "Format Object",然后在对话框的 "Colors and Lines" 选项卡下,将填充(自动)更改为 "No Fill"。请参阅以下示例:
但是我还没有想出如何通过代码来做到这一点。请看以下内容:
Dim sht as Sheet
Set sht = [WorkbookObject].Sheets(1)
With sht
.OLEObjects.Add(ClassType:="Forms.OptionButton.1", Left:=4.5, Top:=34.5, Width:=105, Height:=15).Name = "RadioB_1"
With .OLEObjects("RadioB_1").Object
.Caption = "First Option"
.GroupName = "ColumnFilter"
.BackColor = RGB (128, 128, 128)
.BackStyle = 1
End With
' The above all works fine, however I can't find the correct property
' for the border fill. I have tried various properties for
' .OLEObjects("RadioB_1") and for .OLEObjects("RadioB_1").Object
' however I can't find the correct property.
End With
Excel 的对象浏览器没有给我太多线索。
我也看过 MSDN's Article on OLE Object Properties,但是似乎没有任何东西可以满足我的需要。
啊哈..!进行了更多搜索,我找到了自己问题的答案:
sht.OLEObjects("RadioB_1").ShapeRange.Fill.Transparency = 1
ShapeRange 列在该 MS 页面上,但是它的名称具有误导性,并且官方文档中仍然没有任何地方实际列出所有属性及其作用!无论如何 - 我决定 post 我自己的问题的答案,以供将来寻找此问题的任何人使用。