Не разрешено использовать константы, строки фиксированной длины, массивы, пользовательские типы и операторы Declare в качестве общедоступных элементов модуля объекта
Не все переменные в объектном модуле могут быть объявлены как Public. Однако процедуры объявляются как Public по умолчанию и процедуры Property можно использовать для синтаксического моделирования переменных. Эта ошибка имеет следующие причины и решения.
В объектном модуле объявлена константаPublic.
В объектном модуле нельзя объявлять константу Public, но можно создать процедуру Property Get с таким же именем. Если не создавать процедуры Property Let и Property Set с этим именем, то фактически будет создано свойство, доступное только для чтения, которое можно использовать как константу.
В объектном модуле объявлена строка фиксированной длины Public. Для моделирования строк фиксированной длины можно использовать набор процедур Property которые либо усекают данные строки, превышающие допустимую длину, либо уведомляют пользователя о превышении длины.
В объектном модуле объявлен массивPublic.
Хотя процедура не может вернуть массив, но может вернуть переменную типа Variant, которая содержит массив. Для моделирования массива Public в модуле класса используйте набор процедур Property, которые принимают и возвращают переменную типа Variant, содержащую массив.
В объектный модуль помещен оператор Declare. Операторы Declare неявно являются общедоступными. Перед оператором Declare перед оператором Privateключевое слово.
Для получения дополнительной информации выберите необходимый элемент и нажмите клавишу F1 (для Windows) или HELP (для Macintosh).
Поддержка и обратная связь
Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.