2017-04-21 17 views
1

ボタンをクリックすると、シートをコピーしてフォーマットし、別のマクロを割り当てた新しいボタンを追加するコードを作成しました。VBAのActiveXボタンのカスタマイズ

私の問題は、私のボタンの両方が灰色で、私はそれらをカスタマイズしたいと思います。

最初のボタンはExcelのコントロール要素で、常に元のシートに表示されます。フォント、フォントサイズ、下線を変更して、太字にしました。右クリックして書式設定メニューに入りましたが、背景色を変更するオプションが見つかりません。

2番目のボタンは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 

を次のように私は私が円丘内部BackgroundColorをの線に沿って何かを追加する必要があることを仮定しているが、私はそれを動作させることはできませんです。

私はまた、テキストに下線を引いたり、フォントとフォントサイズを変更したり太字にしたりしたいと思います。

+0

背景色は、その助けをしますか? –

+0

'OleObject'は' CommandButton'をカプセル化し、そのインタフェースを '.Object'を介して' .Object.BackColor = vbRed'と '.Object。 = xxx'で公開します。 –

+0

.BackColor = RGB(255、 0,0)の実行結果で実行時エラー '438'が発生しました。オブジェクトがこのプロパティまたはメソッドをサポートしていません。 –

答えて

1

OleObjectは、CommandButtonをカプセル化し、そのインターフェイスを.Object.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 
関連する問題