1

VBA を使用して、ActiveX フォーム コントロールを含む Excel シートを生成しています。ただし、オブジェクトのプロパティについて利用できるドキュメントはかなり大雑把です。たとえば、OptionButton コントロールを作成すると、オブジェクトに白い実線の境界線が含まれることに気付きました。手動でデザイン モードに入ることができます。右クリック; [オブジェクトの書式設定] をクリックし、ダイアログ ボックスの [色と線] タブで、[塗りつぶし (自動)] を [塗りつぶしなし] に変更します。次の例を参照してください。

[オブジェクトの書式設定] ダイアログ ボックス

ただし、コードを使用してこれを行う方法をまだ考えていません。以下をご覧ください。

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 の Article on OLE Object Propertiesも参照 しましたが、必要なものに対処するものはないようです。

4

1 に答える 1

1

あはは..!さらに多くの検索を行ったところ、自分の質問に対する答えが見つかりました。

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

ShapeRange はその MS ページに記載されていましたが、その名前は誤解を招きやすく、実際にすべてのプロパティとその機能を記載している公式ドキュメントはまだどこにもありません! とにかく、将来これを探している人の利益のために、自分の質問への回答を投稿することにしました。

于 2015-12-23T15:33:53.527 に答える