Slides.Range().Shapes).Count' threw an exception of type 'System.Runtime.InteropServices.COMException'

Aug 23, 2015 at 12:08 AM
Hallo,

ich versuche innerhalb von meinem PowerPoint AddIn alle Shapes einer Präsentation zu holen, leider erfolglos.
Meine letzte Hoffnung war, dass dies über Slides.Range().Shapes gehen würde, allerdings kriege ich dann folgende Exception(Der Aufruf ist im Immediate Window):
>NetOffice.PowerPointApi.Application.GetActiveInstance().ActivePresentation.Slides.Range().Shapes

{NetOffice.PowerPointApi.Shapes}
    Application: {NetOffice.PowerPointApi.Application}
    Count: '(NetOffice.PowerPointApi.Application.GetActiveInstance().ActivePresentation.Slides.Range().Shapes).Count' threw an exception of type 'System.Runtime.InteropServices.COMException'
    Creator: 1347899476
    HasTitle: '(NetOffice.PowerPointApi.Application.GetActiveInstance().ActivePresentation.Slides.Range().Shapes).HasTitle' threw an exception of type 'System.Runtime.InteropServices.COMException'
    InstanceType: {Name = "__ComObject" FullName = "System.__ComObject"}
    IsCurrentlyDisposing: false
    IsDisposed: false
    IsEventBinding: false
    IsEventBridgeInitialized: false
    IsWithEventRecipients: false
    Parent: {NetOffice.PowerPointApi.SlideRange}
    ParentObject: {NetOffice.PowerPointApi.SlideRange}
    Placeholders: '(NetOffice.PowerPointApi.Application.GetActiveInstance().ActivePresentation.Slides.Range().Shapes).Placeholders' threw an exception of type 'System.Runtime.InteropServices.COMException'
    Title: '(NetOffice.PowerPointApi.Application.GetActiveInstance().ActivePresentation.Slides.Range().Shapes).Title' threw an exception of type 'System.Runtime.InteropServices.COMException'
    UnderlyingComponentName: ""
    UnderlyingObject: {System.__ComObject}
    UnderlyingTypeName: "Shapes"
    _callQuitInDispose: false
    _instanceType: {Name = "__ComObject" FullName = "System.__ComObject"}
    _isCurrentlyDisposing: false
    _isDisposed: false
    _isEnumerator: false
    _listChildObjects: Count = 2
    _parentObject: {NetOffice.PowerPointApi.SlideRange}
    _underlyingObject: {System.__ComObject}
    Results View: Expanding the Results View will enumerate the IEnumerable
Ich denke, es ist sehr wahrscheinlich, dass ich auf dieser Art die Shapes nicht holen kann, aber ich bin mir nicht ganz sicher...
Coordinator
Aug 25, 2015 at 8:07 PM
Hallo,

Ich hab das NetOffice Standard Beispiel 1 angepasst und folgende Zeile laufen lassen.

int i = NetOffice.PowerPointApi.Application.GetActiveInstance().ActivePresentation.Slides.Range().Shapes.Count;

Hat problemlos funktioniert.
Kannst du genauer bestimmen ob jetzt die Range() Methode oder der Zugriff auf Slides das Problem verursacht?
(Bei Office Anwendungen ist es oft so gerade bei den Collections alles lazy initialisiert wird.
Wenn also keine Slides da sind(==0) schlägt der Zugriff auf die Collection evtl. fehl.)


*Sebastian
Aug 26, 2015 at 10:27 PM
Hi,

danke, dass du überprüft hast.
Ich habe jetzt geschaut und siehe da, es ist mein Fehler, denn ich hab einfach die Aufrufe zu einem Zeitpunkt gemacht, zu dem die Objekte nicht mehr da sind...
Asche auf mein Haupt!