Hilfe bei der Übersetzung von VB.NET zu VBA für's Ändern der Diagramm-Eigenschaften

  • Excel

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von INOPIAE.

    Hilfe bei der Übersetzung von VB.NET zu VBA für's Ändern der Diagramm-Eigenschaften

    Dies ist mein Original-VB.NET-Code. Diesen habe ich versucht, zu VBA zu übersetzen.

    VB.NET-Quellcode

    1. Private Sub edit_charts()
    2. For Each ChartObj As ChartObject In CType(ExcelWorkSheet.ChartObjects, ChartObjects)
    3. Dim Chart_i As Chart = ChartObj.Chart
    4. If Chart_i.HasLegend Then
    5. Chart_i.Legend.Font.Size = 11
    6. Chart_i.Legend.Font.Bold = True
    7. End If
    8. Chart_i.ChartArea.Border.Color = 0 ' 0 = schwarz
    9. Chart_i.ChartArea.Border.Weight = XlBorderWeight.xlThin
    10. Dim Achsen As Axes = CType(Chart_i.Axes(), Axes)
    11. For Each Achse As Axis In Achsen
    12. Achse.TickLabels.Font.Size = 11
    13. Achse.TickLabels.Font.Bold = True
    14. If Achse.HasTitle Then
    15. CType(Achse.AxisTitle, AxisTitle).Font.Size = 11
    16. CType(Achse.AxisTitle, AxisTitle).Font.Bold = True
    17. End If
    18. Next
    19. Next
    20. End Sub


    Quellcode

    1. Sub edit_charts()
    2. For Each ChartObj In ActiveSheet.ChartObjects
    3. Chart_i = ChartObj.Chart
    4. If Chart_i.HasLegend Then
    5. Chart_i.Legend.Font.Size = 11
    6. Chart_i.Legend.Font.Bold = True
    7. End If
    8. Chart.ChartArea.Border.Color = 0 ' 0 = schwarz
    9. Chart.ChartArea.Border.Weight = XlBorderWeight.xlThin
    10. Achsen = Chart.Axes()
    11. For Each Achse In Achsen
    12. Achse.TickLabels.Font.Size = 11
    13. Achse.TickLabels.Font.Bold = True
    14. If Achse.HasTitle Then
    15. Achse.AxisTitle.Font.Size = 11
    16. Achse.AxisTitle.Font.Bold = True
    17. End If
    18. Next
    19. Next
    20. End Sub


    In Zeile 3 (
    Chart_i = ChartObj.Chart) kommt der Fehler 438: Objekt unterstützt diese Eigenschaft oder Methode nicht.

    Auch, wenn ich direkt alle Charts erfasse, irgendwo im oberen Bereich bleibt er immer stehen.