Хороший вопрос.
Одним из уродливых методов было бы использование SendKeys для нажатия клавиши со стрелкой вниз. Если курсор находится над первым слайдом, это приведет к выбору первого слайда. Если курсор находится между слайдами один и два, то будет выбран второй слайд.
Немного менее уродливо было бы использовать метод .Execute для запуска правильного элемента управления для вставки нового слайда, который должен имитировать то, что получает пользователь, когда он делает то же самое; если индекс вставленного слайда равен 1, то курсор находился над исходным первым слайдом. Если индекс вставленного слайда равен 2, курсор изначально находился между слайдами 1 и 2.
Или используйте SendKeys ("^ M"), чтобы выполнить то же самое (не будет работать с w / в IDE, но в самом PPT вы можете использовать Alt + F8 и выбрать макрос для его запуска.)
Пример: отображается 1, если курсор был над первым слайдом, 2, если он был между слайдами 1 и 2. Необходим DoEvnts; в противном случае PPT не создал слайд до запуска следующей строки и выдает ошибку.
Sub thing()
Dim lTemp As Long
SendKeys ("^M")
DoEvents
lTemp = ActiveWindow.Selection.SlideRange(1).SlideIndex
ActiveWindow.Selection.SlideRange.Delete
MsgBox lTemp
End Sub
Я подозреваю, что вы захотите добавить некоторые проверки безопасности, чтобы убедиться, что существующий слайд не будет ошибочно удален, а не только что вставленный.