Я пытаюсь создать новый слайд и одновременно назвать его с помощью VBA. У меня есть страница главного меню, содержащая фигуры с текстовыми метками. Я установил действие для каждой фигуры для запуска следующего макроса: Он предназначен для создания нового слайда и его имени, совпадающего с именем категории, которое отображается в тексте на кнопке, которую нажал пользователь.
Sub ChangeSlideName(objCurrentShape As Shape) ' Place the clicked on shape in a variable.
Dim objTextInBox As String
Dim objCurrentSlideNum As Integer
' Place current slide number into a variable.
objCurrentSlideNum = ActivePresentation.SlideShowWindow.View.CurrentShowPosition
' Set value of string variable to the text in the shape clicked on.
objTextInBox = ActivePresentation.Slides(objCurrentSlideNum).Shapes(objCurrentShape.Name).TextFrame.TextRange.Text
' Create a new slide at the end of the presentation.
Set pptNewSlide = ActivePresentation.Slides.Add(ActivePresentation.Slides.Count + 1, ppLayoutBlank)
' Make the new slide the active slide.
ActivePresentation.SlideShowWindow.View.Last
' Set the name of the new slide to the text contained on the button clicked.
ActiveWindow.View.Slide.Name = objTextInBox
End Sub
Мой код запускается и переводит меня на только что созданный слайд; однако я не знаю, как определить, действительно ли он назвал новый слайд. Поскольку я использую переменную для названия слайда, я подозреваю, что это не работает. Когда я запускаю другой макрос с другого слайда, он не перенаправляет меня на слайд, который я переименовал. Я также использую переменную для определения имени слайда, на который я пытаюсь перейти. Я пробовал все 4 из следующих команд по одной.
' Take user to the page of the category clicked on.
SlideShowWindows(1).View.GotoSlide GetSlideIndex(objTextInBox)
ActivePresentation.SlideShowWindow.View.GotoSlide (objTextInBox)
SlideShowWindows(1).View.GotoSlide GetSlideIndex(objTextInBox), 1
ActivePresentation.Slides(objTextInBox).Select
Я что-то упустил в своем коде, например, круглые скобки, кавычки или что-то в этом роде? Могу ли я не использовать переменную вместо буквальной строки, такой как имя нового слайда? Кроме того, может ли кто-нибудь сказать мне, как проверить имя слайда?