Это решение является ЕДИНСТВЕННЫМ ответом на ВАШ вопрос ... но это не значит, что вы должны это делать. Вы используете константы для удобства сопровождения, что хорошо, но код VBA по умолчанию недоступен для другого кода VBA в целях безопасности. Так что для вашего сценария лучше использовать альтернативу константам. Другие предложили использовать словарь. Вы также можете использовать CustomXMLParts , которые имеют преимущество постоянства.
При этом единственный способ получить имена констант - это проанализировать текст модуля кода, который содержит константы.
Чтобы прочитать текст любого модуля кода, вам нужно установить ссылку на:
Microsoft Visual Basic for Applications Extensibility 5.3 type library
... в Инструменты -> Ссылки в VB IDE.
Затем вы можете получить объявления модуля следующим образом ...
With ThisWorkbook.VBProject.VBComponents("YOUR_CODE_MODULE_NAME").CodeModule
MsgBox .Lines(1, .CountOfDeclarationLines)
End With