I am using Visual Studio Community and have added a reference to the Microsoft.Office.Interop.Powerport COM library to my project. I am not developing a VSTO application but want to create and modify a PowerPoint file suing data from my application. I am able to successfully create a new presentation and add a slide to it by copying the slide from another PowerPoint file. That slide contains some Shapes that I need to modify. I have tried to access the shapes one at a time with various methods. In what follows PPT = Microsoft.Office.Interop.PowerPoint
I've tried
System.Collections.IEnumerator e = theSlide.Shapes.GetEnumerator();
while (e.MoveNext())
{
PPT.Shape aShape = (PPT.Shape)e.Current;
}I get an error that I cannot cast a _com object to PPT.Shape object on the e.Current line. I've tried
for (int i = 1; i <= theSlide.Shapes.Count; i++)
{
PPT.Shape aShape = theSlide.Shapes[i];
}
where I get an 'object not found' error on the reference to Shapes[i]. When I use the debugger to look at Slides, I see the Count=2, but there does not appear to be any actual collection associated with it. Also, the Item attribute is not visible, even through
it is letting me use the [] shorthand. I have also tried 'foreach' where I get a cast error like the use of e enumerator.