AddLabel

Aus Thomas Wiki
Version vom 2. November 2016, 09:55 Uhr von Thomas (Diskussion | Beiträge) (Verbessertes Programm)
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.

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