Да, это, безусловно, можно сделать. Требуется немного больше кода, чем у меня на кончиках моих пальцев, и вам нужно будет адаптировать все, что я написал. Но посмотрите здесь примеры, с которых вы можете начать. Они указывают на сайт FAQ PowerPoint, который я поддерживаю. Ни за что не взимается.
Управление офисными приложениями из PowerPoint (Naresh Nichani и Brian Reilly)
http://www.pptfaq.com/FAQ00795.htm
Автоматизация Excel из PowerPoint. Автоматизация PowerPoint из Excel. И так далее.
http://www.pptfaq.com/FAQ00368.htm
Я бы, вероятно, сделал это, открыв файл excel, прочитав содержимое в массив, а затем используя данные из массива, чтобы выполнить фактическую работу в PPT.
Если вам нужна помощь с PPT, сообщите нам. В основном это будет вопрос написания такой функции, как [aircode]:
Sub SetRectangleSize ( sRectangleName as string, sngWidth as Single, sngHeight as Single)
Dim oShp as Shape
Set oShp = GetShapeNamed(sRectangleName, lSlideIndex)
If Not oShp is Nothing Then
With oShp
.Width = sngWidth
.Height = sngHeight
End With
End If
End Sub
И
Function GetShapeNamed(sName as String, lSlideIndex as Long) as Shape
On Error Resume Next
Set GetShapeNamed = ActivePresentation.Slides(lSlideIndex).Shapes(sName)
If Err.Number <> 0 Then
' no shape by that name on the slide; return null
Set GetShapeNamed = Nothing
End If
End Function
Кстати, я бы рассмотрел использование тегов для идентификации прямоугольников, а не имен фигур (которые, как правило, менее надежны).