Поделиться через


Не разрешено использовать константы, строки фиксированной длины, массивы, пользовательские типы и операторы 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 и обратная связь.