In Powerpoint eine Tabelle über VB erstellen - Inkompatibel zu VBA?

  • VB.NET

    In Powerpoint eine Tabelle über VB erstellen - Inkompatibel zu VBA?

    Hallo,

    ich habe einen merkwürdigen Effekt, den ich mir nicht erklären kann. Ich habe eine Lösung zunächst in VBA in Powerpoint 2003 programmiert und dann in VB2010 portiert. Die Lösung funktioniert auch soweit, aber bestimmte Funktionen, z.B. setzen des Linestyles oder Borders in der Tabelle, ist in VBA problemlos möglich, in VB jedoch nicht.

    Im Debugging kommt nur die Fehlermeldung "Ausnahme von HRESULT 0x800A01A8" - wofür ich bei Google und hier im Forum keine Lösung gefunden habe.

    Den ganzen Code einzuklinken wäre wahrscheinlich zu lang, aber es geht insbesondere um folgende Passage:

    Quellcode

    1. myTableShape = SlideObj.Shapes.AddTable(myHeaders + mySwimLaneCount, 1)
    2. myTable = myTableShape.Table
    3. For i = 1 To myTotalMonths
    4. myTableShape.Width = MaxWidth / 2
    5. myTable.Columns.Add()
    6. myTable.Columns(myTable.Columns.Count).Cells.Borders(PpBorderType.ppBorderLeft).Weight = 1
    7. myTable.Columns(myTable.Columns.Count).Cells.Borders(PpBorderType.ppBorderLeft).ForeColor.SchemeColor = Microsoft.Office.Interop.PowerPoint.PpColorSchemeIndex.ppShadow
    8. 'myTable.Columns(myTable.Columns.Count).Cells.Borders(PpBorderType.ppBorderLeft).DashStyle = MsoLineDashStyle.msoLineSquareDot
    9. If CurrentMonth = 1 Then
    10. 'myTable.Columns(myTable.Columns.Count).Cells.Borders(PpBorderType.ppBorderLeft).Weight = 1
    11. 'myTable.Columns(myTable.Columns.Count).Cells.Borders(Microsoft.Office.Interop.PowerPoint.PpBorderType.ppBorderLeft).ForeColor.RGB = RGB(0, 0, 0)
    12. 'myTable.Columns(myTable.Columns.Count).Cells.Borders(Microsoft.Office.Interop.PowerPoint.PpBorderType.ppBorderLeft).DashStyle = Microsoft.Office.Core.MsoLineDashStyle.msoLineSolid
    13. End If
    14. If CurrentMonth = 4 Or CurrentMonth = 7 Or CurrentMonth = 10 Then
    15. 'myTable.Columns(myTable.Columns.Count).Cells.Borders(Microsoft.Office.Interop.PowerPoint.PpBorderType.ppBorderLeft).Weight = 2
    16. 'myTable.Columns(myTable.Columns.Count).Cells.Borders(Microsoft.Office.Interop.PowerPoint.PpBorderType.ppBorderLeft).ForeColor.SchemeColor = Microsoft.Office.Interop.PowerPoint.PpColorSchemeIndex.ppShadow
    17. 'myTable.Columns(myTable.Columns.Count).Cells.Borders(Microsoft.Office.Interop.PowerPoint.PpBorderType.ppBorderLeft).DashStyle = Microsoft.Office.Core.MsoLineDashStyle.msoLineSquareDot
    18. End If
    19. .....


    Im Wesentlichen wird also auf einem Slide ein Table erzeugt und dieser wird anschließend formatiert.

    Die auskommentierten Zeilen (z.B. Zeile 9) sind die Problemfälle. Wenn ich sie auskommentiere funktioniert alles andere, aber an diesen Zeilen kommt der oben genannte Fehler. In VBA direkt in Powerpoint funktionieren die Zeilen generell alle.

    Was mir nicht klar ist, warum z.B. Zeile 7 problemlos durchläuft, aber Zeile 12 den Fehler verursacht, da es ja derselbe Code ist.

    Vielleicht hat jemand einen heissen Tipp für mich?

    Viele Grüße
    Marquis