2015-12-23 111 views
1

我使用VBA生成包含ActiveX窗體控件的Excel工作表。然而,可用於對象屬性的文檔相當粗略。我注意到,例如,當我創建一個OptionButton控件時,該對象包含一個純白色邊框。我可以手動進入設計模式;右鍵點擊; 「格式對象」,然後在對話框的「顏色和線條」選項卡下,將填充(自動)更改爲「不填充」。請看下面的例子:使用VBA從Excel中刪除OLEObject的邊框

Format Object dialogue box

不過,我還沒有制定出如何通過代碼做到這一點。請看以下內容:

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,但似乎沒有任何東西可以解決我需要的東西。

回答

1

啊哈!很多更多的搜索,我找到了答案,以我自己的問題:

sht.OLEObjects("RadioB_1").ShapeRange.Fill.Transparency = 1 

ShapeRange是MS頁上列出,但它的名字是一種誤導,而且還有無處正式文件實際上列出了所有屬性和他們做什麼!無論如何 - 我決定在我自己的問題上發佈答案,以便將來任何人尋找這一點。