• Познакомьтесь с пентестом веб-приложений на практике в нашем новом бесплатном курсе

    «Анализ защищенности веб-приложений»

    🔥 Записаться бесплатно!

  • CTF с учебными материалами Codeby Games

    Обучение кибербезопасности в игровой форме. Более 200 заданий по Active Directory, OSINT, PWN, Веб, Стеганографии, Реверс-инжинирингу, Форензике и Криптографии. Школа CTF с бесплатными курсами по всем категориям.

Vba И Power Point

  • Автор темы Vladislava-smile
  • Дата начала
V

Vladislava-smile

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

Как менять цвет нашла
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)
 
V

Vladislava-smile

А подскажите еще вопрос. Можно ли как и в Exel сделать автоматический запуск макросов при запуске презентации?
 
V

Vladislava-smile

С овалами разобралась уже. Спасибо. Под запуском подразумевается показ слайдов.

А можно ли в связке 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

(( Я в тупике, помогите, пожалуйста.
 
V

Vladislava-smile

Нашла блок
Sub Shape3_Clicked()

End Sub

Только вот осталось понять как эту 3 на примере вытаскивать и записывать в переменную.
 
V

Vladislava-smile

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. Мысли есть?
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!