Excel Diagramm einfärben bzw. formatieren (Microsoft.Office.Interop.Excel.Chart)

  • VB.NET

Es gibt 6 Antworten in diesem Thema. Der letzte Beitrag () ist von FloFuchs.

    Excel Diagramm einfärben bzw. formatieren (Microsoft.Office.Interop.Excel.Chart)

    Excel 2010
    Visual Studio 2010

    Hallo Gemeinde.

    Eigentlich ein einfaches Problem:

    Ich erstelle mir derzeit mit dem Microsoft.Office.Interop.Excel-Interface Excel-Sheets samt Diagrammen.
    Dies funktioniert auch alles wunderbar nur möchte ich nun die Diagramm-Hintergrundfarbe (ChartArea) und die Farbe der PlotArea ändern.
    Bekomme dies allerdings nicht hin.

    Ein Versuch war zum Beispiel folgender:

    VB.NET-Quellcode

    1. Dim chartPage As Microsoft.Office.Interop.Excel.Chart
    2. Dim xlCharts As Microsoft.Office.Interop.Excel.ChartObjects
    3. Dim myChart As Microsoft.Office.Interop.Excel.ChartObject
    4. Dim chartRange As Microsoft.Office.Interop.Excel.Range
    5. xlCharts = xlcurChartSheet.ChartObjects
    6. myChart = xlCharts.Add(10, 80, 900, 400)
    7. chartPage = myChart.Chart
    8. chartRange = xlcurChartSheet.Range("A3", xlcurChartSheet.Cells(nDataRowCnt + 2, 1))
    9. chartPage.SetSourceData(Source:=chartRange)
    10. chartPage.ChartType = Microsoft.Office.Interop.Excel.XlChartType.xlLine
    11. 'farbig
    12. chartPage.ChartArea.Fill.BackColor.SchemeColor = RGB(255, 255, 204)


    Ich wüsste zu gern, wie ich Zugriff auf die Diagramm-Farbeigenschaften bekomme...
    Vielen Dank im Voraus.
    Nachtrag

    Das VBA-Makro, das mir das Diagramm einfärbt sieht wie folgt aus:

    VB.NET-Quellcode

    1. ActiveSheet.ChartObjects("Diagramm 1").Activate
    2. With ActiveSheet.Shapes("Diagramm 1").Fill
    3. .Visible = msoTrue
    4. .ForeColor.RGB = RGB(255, 255, 204)
    5. .Transparency = 0
    6. .Solid
    7. End With


    Leider bringt mich dieser Code auch nicht weiter...
    Ich benötige den Code in VB.NET und nicht über VBA (siehe obiges Beispiel, den VBA-Code aus der Makro-Aufzeichnung unter Excel kann ich nicht einfach 1:1 einfügen)!
    Die Aufbereitung der Excel Sheets und Diagramme unterliegt einer *.EXE, die unter Visual Studio 2010 entwickelt wird.
    Danke.
    Ich wüsste nicht was an obigem Code unter VB nicht funktionieren sollte?
    Musst halt noch ActiveSheet ersetzen... ala:

    VB.NET-Quellcode

    1. dim xlApp as new Excel.aplication
    2. dim xlMappe = xlapp.workbooks.open("DeineDatei")
    3. with xlmappe.shapes("Diagramm")
    4. '... whoatever
    5. end with
    Okay stimmt. Ich habe die eine Farbe für den Hintergrund (ChartArea) jetzt setzen können.
    Allerdings stehe ich auf dem Schlauch den folgenden VBA Code in VB.NET zu überführen. Hier wird die PlotArea angefärbt:

    VB.NET-Quellcode

    1. ActiveSheet.ChartObjects("Diagramm 1").Activate
    2. ActiveChart.PlotArea.Select
    3. With Selection.Format.Fill
    4. .Visible = msoTrue
    5. .ForeColor.ObjectThemeColor = msoThemeColorAccent1
    6. .ForeColor.TintAndShade = 0
    7. .ForeColor.Brightness = 0
    8. .Solid
    9. End With


    Vor allem weiß ich momentan nicht "msoThemeColorAccent1" aufzulösen.
    Danke.