Заставить объект удалить себя с помощью макроса - PullRequest
0 голосов
/ 24 января 2019

У меня есть код, который создает три идентичных объекта и дает им макрос для запуска при нажатии. Мне нужно сделать так, чтобы они также удаляли себя (или уходили с экрана), когда на них нажимали!

Я уже пытался добавить .delete в своем выражении ppMouseClick

Public Sub PopUpBattleTimes3()
BattleCounter = 0
SlideShowWindows(1).View.GotoSlide (7)

Dim oShp1 As Shape
Dim oShp2 As Shape
Dim oShp3 As Shape


Dim valuex As Integer
Dim valuey As Integer

valuex = CInt(Int((800 * rnd()) + 10))
valuey = CInt(Int((500 * rnd()) + 10))
Set oShp1 = ActivePresentation.Slides(7).Shapes.AddShape(msoShapeActionButtonCustom, valuex, valuey, 80, 50)
oShp1.TextFrame.TextRange.Text = "Object 1"
With oShp1.ActionSettings(ppMouseClick)
    .Action = ppActionRunMacro
    .Run = "AddToCounter"
End With


valuex = CInt(Int((800 * rnd()) + 10))
valuey = CInt(Int((500 * rnd()) + 10))
Set oShp2 = ActivePresentation.Slides(7).Shapes.AddShape(msoShapeActionButtonCustom, valuex, valuey, 80, 50)
oShp2.TextFrame.TextRange.Text = "Object2"
With oShp2.ActionSettings(ppMouseClick)
    .Action = ppActionRunMacro
    .Run = "AddToCounter"
End With

valuex = CInt(Int((800 * rnd()) + 10))
valuey = CInt(Int((500 * rnd()) + 10))
Set oShp3 = ActivePresentation.Slides(7).Shapes.AddShape(msoShapeActionButtonCustom, valuex, valuey, 80, 50)
oShp3.TextFrame.TextRange.Text = "Object3"
With oShp1.ActionSettings(ppMouseClick)
    .Action = ppActionRunMacro
    .Run = "AddToCounter"
End With
End Sub

Мне бы очень хотелось, чтобы в моем макросе «AddToCounter» или в этом макросе был какой-то код, который помог бы удалить (или переместить за пределы экрана) объект, по которому щелкнули. Спасибо вам, ребята, за помощь!

1 Ответ

0 голосов
/ 24 января 2019

Добавьте это пожалуйста:

Public Sub AddToCounter(sh As Shape)
    sh.Delete
End Sub

Если вы даете своим кнопкам нестандартное имя в «PopUpBattleTimes3», e. г. oShp1.name = "TEST1" тогда вы можете использовать Select Case sh.Name в вашем AddToCounter для обработки различных действий для каждой кнопки.

...