Also habe ich den Code unten und für die Taste, die für "rbtn" erstellt wird, möchte ich entweder den Text der Beschriftung auf der Schaltfläche Fläche zu umbrechen oder an der Spitze vertikal ausgerichtet (so dass es umschließt). Das Problem, das ich habe, ist, dass die Beschriftung auf der Schaltfläche sein kann, was auch immer der Benutzer eingibt, und ich werde nicht wissen, was das ist. Wenn es mehr als 4 Zeichen ist, muss es umbrochen werden. Ich habe überall nachgesehen, aber ich finde keine Lösung für dieses Problem. Das Ändern der Schaltflächengröße wird nicht bevorzugt. Ich würde denken, dass der Text-Wrap auf dem Button einfach wäre, aber ich kann einfach keine Lösung finden. Kann jemand helfen? DankeIst es möglich, die Ausrichtung der Textausrichtung auf einer Schaltfläche mithilfe von vba zu ändern?
Sub AddRoute()
Dim x As Integer
Dim bc As String
bc = "*"
x = ThisWorkbook.Sheets.Count
If x > 9 Then Call SndClm
If x > 9 Then End
Dim btn As Button
Dim rbtn As Button
Application.ScreenUpdating = False
Dim i As Integer
Dim j As Integer
Dim t As Range
Dim g As Range
Dim sName As String
Dim wks As Worksheet
j = ThisWorkbook.Sheets.Count
i = ThisWorkbook.Sheets.Count
Worksheets("NewRoute").Copy After:=Sheets(Worksheets.Count)
Set wks = ActiveSheet
Do While sName <> wks.Name
sName = Application.InputBox _
(Prompt:="Enter new route name")
On Error Resume Next
wks.Name = sName
Worksheets("Home").Activate
On Error GoTo 0
i = i + j
x = i + j
ActiveSheet.Cells(x - 4, 7).Select
Set g = ActiveSheet.Range(Cells(1, 7), Cells(2, 7))
Set rbtn = ActiveSheet.Buttons.Add(ActiveCell.Left, ActiveCell.Top, g.Width, g.Height)
ActiveSheet.Cells(x - 4, 8).Select
Set t = ActiveSheet.Range(Cells(1, 8), Cells(2, 10))
Set btn = ActiveSheet.Buttons.Add(ActiveCell.Left, ActiveCell.Top, t.Width, t.Height)
With rbtn
.Font.Name = "Calibri"
.Font.Size = 11
.OnAction = "'btnS""" & sName & """'"
.Caption = sName
.Name = sName
End With
With btn
.Font.Name = "free 3 of 9"
.Font.Size = 36
.OnAction = "'btnS""" & sName & """'"
.Caption = bc + sName + bc
.Name = sName
End With
Application.ScreenUpdating = True
Loop
Set wks = Nothing
ActiveSheet.Cells(1, 1).Select
End Sub
Ich bezweifle, wenn Sie einen "Wrap" für den Text der Schaltfläche finden. Sie können möglicherweise die Funktion Mid() verwenden und eine Zeile hinzufügen ... '.Caption = Mid (sName, 1, 4) & Chr (10) & Mid (sName, 5, 99)' – Davesexcel