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:
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
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
- myTableShape = SlideObj.Shapes.AddTable(myHeaders + mySwimLaneCount, 1)
- myTable = myTableShape.Table
- For i = 1 To myTotalMonths
- myTableShape.Width = MaxWidth / 2
- myTable.Columns.Add()
- myTable.Columns(myTable.Columns.Count).Cells.Borders(PpBorderType.ppBorderLeft).Weight = 1
- myTable.Columns(myTable.Columns.Count).Cells.Borders(PpBorderType.ppBorderLeft).ForeColor.SchemeColor = Microsoft.Office.Interop.PowerPoint.PpColorSchemeIndex.ppShadow
- 'myTable.Columns(myTable.Columns.Count).Cells.Borders(PpBorderType.ppBorderLeft).DashStyle = MsoLineDashStyle.msoLineSquareDot
- If CurrentMonth = 1 Then
- 'myTable.Columns(myTable.Columns.Count).Cells.Borders(PpBorderType.ppBorderLeft).Weight = 1
- 'myTable.Columns(myTable.Columns.Count).Cells.Borders(Microsoft.Office.Interop.PowerPoint.PpBorderType.ppBorderLeft).ForeColor.RGB = RGB(0, 0, 0)
- 'myTable.Columns(myTable.Columns.Count).Cells.Borders(Microsoft.Office.Interop.PowerPoint.PpBorderType.ppBorderLeft).DashStyle = Microsoft.Office.Core.MsoLineDashStyle.msoLineSolid
- End If
- If CurrentMonth = 4 Or CurrentMonth = 7 Or CurrentMonth = 10 Then
- 'myTable.Columns(myTable.Columns.Count).Cells.Borders(Microsoft.Office.Interop.PowerPoint.PpBorderType.ppBorderLeft).Weight = 2
- 'myTable.Columns(myTable.Columns.Count).Cells.Borders(Microsoft.Office.Interop.PowerPoint.PpBorderType.ppBorderLeft).ForeColor.SchemeColor = Microsoft.Office.Interop.PowerPoint.PpColorSchemeIndex.ppShadow
- 'myTable.Columns(myTable.Columns.Count).Cells.Borders(Microsoft.Office.Interop.PowerPoint.PpBorderType.ppBorderLeft).DashStyle = Microsoft.Office.Core.MsoLineDashStyle.msoLineSquareDot
- End If
- .....
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