Clever-Excel-Forum

Normale Version: Fontgröße von unregelmäßig vorhandenen CommandButtons ändern
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo zusammen,

in meinem Arbeitsblatt habe ich bspw. in Spalte D und E eine Anzahl unregelmäßig verteilter CommandButtons.

Per VBA/Makro möchte ich diesen CommandButtons eine neue Fontgröße (bspw. 11) zuweisen. 

Ich bin ein wenig ratlos, wie dass umzusetzen wäre. Kann mich hierbei jemand unterstützen?

Danke und vG!
Hallo,

wie oft kommt es denn vor, dass du die Schriftgröße ändern willst? Kann mir wirklich nicht vorstellen, dass man dafür ein Makro braucht.
Hallo,

bin faul ... hier mit 6 Commandbuttons ...

Microsoft Excel Objekt Tabelle1
Option Explicit 

Sub Schalter_formatieren()
Dim i As Integer
For i = 1 To 6
    With Worksheets("Tabelle1").Buttons(i).Characters.Font
        .Size = 22
        .Name = "Calibri"
        .FontStyle = "Standard"
        .Size = 22
    End With
Next
End Sub

Du musst nur den Wert i erhöhen.
Gruß
Marcus.
Hallo,

danke für die Rückmeldungen.

Ich habe den Code mal eingebaut und bin auf folgenden Punkt gestoßen:

Vermutlich wirken sich die Änderungen nur auf Schaltflächen (Formulasteuerelemente) aus, nicht auf Befehlsschaltflächen (ActiveX-Steuerelemente).

Eine Anpassung an 'Commandbutton' schlägt mit der Fehlermeldung "Laufzeitfehler '438': Objekt unterstützt diese Eigenschaft oder Methode nicht.'  Bsp.: 

  With 
     Worksheets("Tabelle1").CommandButton(1).font.Size = 12
  End With

Hintergrund meiner Frage ist, dass bei Veränderung der Zeilenhöhe die Beschriftung der Befelsschaltflächen (CommandButtons), welche in der Zelle positioniert ist, verzerrt wird. Und das, obwohl ich unter 'Formatierung \ Eigenschaften' die 'Objektpositionierung' auf 'Von Zellposition und -größe abhängig' ausgewählt habe.

Mein Ziel ist es, bei Änderung der Zeilenhöhe (bzw. auch der Spaltenbreite) einen 'Refresh' über alle CommandButtons-Captions  laufen zu lassen, so dass deren Beschriftungen wieder den ursprünglichen Parametern (bspw. Size = 12) entspricht.

Muss hier u.U. anders angesetzt werden?

Danke und vG!
Hallo,

hier mal ein ganz anderer Ansatz, da es sich offenbar um mehrere Schaltflächen handelt, könntest du ja mal über die Verwendung von UserForms nachdenken.
Hallo,

teste mal:

Code:
Sub Button_Schriftgroesse_aendern()
   Dim objOLE As OLEObject
   
   For Each objOLE In ActiveSheet.OLEObjects
      If TypeOf objOLE.Object Is Msforms.CommandButton Then
         With objOLE.Object.Font
            .Size = 11
            .Name = "Arial"
          End With
      End If
   Next
   
End Sub