Я использую VBA в PowerPoint и у меня более 50 фигур на слайде, и все они названы. Чтобы обновить цвет фигуры, я ссылаюсь на слайд позже в презентации. Номера слайдов хранятся в виде глобальных переменных и присваиваются в подпрограмме (номера слайдов остаются постоянными):
Sub getSlideNum()
example1_SlideNum = 25
example2_SlideNum = 26
example3_SlideNum = 27
etc.
End Sub
Исходя из названия фигур, я могу использовать «пример1», «пример2», « example3 ", et c. Затем я объединяю его с "_SlideNum", дающим мне имя переменной.
Вместо того, чтобы использовать If Statements или Select Case для назначения каждой переменной их слайда, я хочу иметь короткую функцию, например:
Function getSlide(shpName As String)
Call getSlideNum 'get the slide num for each from the previously mentioned sub
Dim p As Variant
p = shpName & "_SlideNum"
getSlide = p
End Function
Как и ожидалось, getSlide
возвращает строку example1_SlideNum
, а НЕ 25
.
Есть ли способ преобразовать строку в переменную, чтобы она использовала сохраненное значение, а не текст строки?
Было бы неплохо иметь короткую функцию, подобную приведенной выше, вместо того, чтобы печатать Примерно 50 операторов Select Case.