AddLabel

Aus Thomas Wiki
Zur Navigation springen Zur Suche springen

Folgendes VBA-Unterprogramm SetDateInDiagram() fügt in alle Charts einer Excel-Datei ein Textfeld / Label rechts oben mit dem aktuellen Monat (Januar, Februar ...) und Jahr (vierstellig) ein. Mit der Funktion CheckLabelExists(...) wird geprüft, ob ein Label mit dem Namen "Stand" bereits existiert.

Code: SetDateInDiagram
Private Function CheckLabelExists(argChart As Object, argName As String) As Boolean
 
  Dim obj As Object
 
  CheckLabelExists = False
 
  For Each obj In argChart.Shapes
    If UCase(obj.Name) = UCase(argName) Then CheckLabelExists = True: Exit Function
  Next obj
 
End Function

Sub SetDateInDiagram()
'
' Stand Makro
' Einfügen des Standes des Diagrames
'

Dim mySheet As Worksheet
Dim myChart As Chart

For Each mySheet In Worksheets

  If mySheet.ChartObjects.Count > 0 Then
  
    Set myChart = mySheet.ChartObjects(1).Chart
    If Not CheckLabelExists(myChart, "Stand") Then
      With myChart.Shapes.AddLabel(msoTextOrientationHorizontal, 380, 4, 144, 20)
        .Name = "Stand"
        .TextFrame.Characters.Text = Format(Date, "mmmm yyyy")
        .TextFrame.Characters.Font.Size = 12
        .TextFrame.Characters.Font.Bold = True
        .TextFrame.HorizontalAlignment = xlHAlignRight
      End With
    Else
      myChart.Shapes("Stand").TextFrame.Characters.Text = Format(Date, "mmmm yyyy")
      myChart.Shapes("Stand").TextFrame.HorizontalAlignment = xlHAlignRight
    End If
  End If
  
Next
 
End Sub