Vba И Power Point

22.05.2014
4
0
#1
На слайде есть нарисованный овал, при запуске презентации он должен менять цвет заливки.

Как менять цвет нашла
Dim a As Shape
Private Sub CommandButton2_Click()
a = ActivePresentation.Slides(1).Shapes ("Oval 6").Select
a.Fill.ForeColor.RGB = RGB(0, 255, 0)

End Sub

Но он ругается. Помогите, пожалуйста, что не так?Непонимающий

если овал создавать тоже в коде в блоке кнопки, то все хорошо.
Set b = ActivePresentation.Slides(1).Shapes .AddShape(msoShapeOval, 586.75, 150.88, 79.38, 79.38)
 
22.05.2014
4
0
#3
А подскажите еще вопрос. Можно ли как и в Exel сделать автоматический запуск макросов при запуске презентации?
 
22.05.2014
4
0
#4
С овалами разобралась уже. Спасибо. Под запуском подразумевается показ слайдов.

А можно ли в связке Power Point и VBA делать следующие вещи:
В слайде презентации у нас есть 3 прямоугольника. Нужно, что бы при наведении или при щелчке на этот объект при просмотре презентации выдавалось сообщение о названии этого объекта и его индексе. Писать макрос на каждый объект и привязывать его через действие не вариант - таких объектов по всей презентации около 500 штук. Нашла только, чтобы выводился общий список.

Sub Auto_open()

Set sh = ActiveWindow.Selection.SlideRange.Shapes

Im = ""

For Each fr In sh

Im = Im & fr.Name & vbCrLf

Next

MsgBox Im

End Sub

(( Я в тупике, помогите, пожалуйста.
 
22.05.2014
4
0
#5
Нашла блок
Sub Shape3_Clicked()

End Sub

Только вот осталось понять как эту 3 на примере вытаскивать и записывать в переменную.
 
22.05.2014
4
0
#6
Sub identification(oShp As Shape)
MsgBox oShp.Name, vbInformation + vbOKOnly
Dim FullString As String
Dim SearchString As String
Dim SearchStringPos As Integer
Dim ShapeNumber As Integer
Dim ShapeNumberPos As Integer
FullString = oShp.Name
SearchString = " "
SearchStringPos = InStr(1, FullString, SearchString)
ShapeNumberPos = SearchStringPos + 1
ShapeNumber = Mid(FullString, ShapeNumberPos)
MsgBox (ShapeNumber)
End Sub


Работает.

Добавлено: Остался только Auto_Open. Мысли есть?