Гид по технологиям

Исправление ошибки VBA «Class not registered» в Excel

5 min read Microsoft Office Обновлено 24 Nov 2025
Ошибка VBA "Class not registered" в Excel — как исправить
Ошибка VBA "Class not registered" в Excel — как исправить

Fix Class not registered VBA error

Ошибка “Class not registered” в Microsoft Excel чаще всего появляется при попытке запустить макрос VBA. При возникновении этой проблемы макрос не выполняется, и требуемая автоматизация останавливается. Частые причины: отсутствующие или незарегистрированные DLL, повреждённая установка Office или повреждённые системные файлы Windows.

В этой статье подробно описаны проверенные методы устранения ошибки, включая пошаговые инструкции, альтернативы и диагностические рекомендации.

Быстрый план действий

  1. Попробуйте восстановление Microsoft Office (быстро и безопасно).
  2. Зарегистрируйте ключевую библиотеку fm20.dll вручную.
  3. Просканируйте систему инструментами DISM и SFC.
  4. Обновите Office до последней версии.

Если после всех шагов проблема остаётся — выполните раздел «Диагностика и чек‑лист» и используйте рекомендации по откату и альтернативам.

Подробные методы устранения

1. Восстановление Microsoft Office

  1. Нажмите Windows + R, введите appwiz.cpl и нажмите Enter, чтобы открыть окно Программы и компоненты.
    appwiz.cpl

  2. Найдите запись Microsoft Office, выберите её и нажмите Изменить.
    Change to fix class not registered vba

  3. Подтвердите запрос контроля учётных записей, нажав Да.
    Click Yes

  4. Выберите Онлайн‑восстановление и нажмите Восстановить, чтобы запустить процесс.
    Online repair to fix class not registered vba

Примечание: Онлайн‑восстановление загружает файлы с серверов Microsoft и восстанавливает повреждённые компоненты. Это часто решает ошибки, связанные с COM‑объектами и библиотеками, используемыми VBA.

2. Регистрация критического DLL-файла (fm20.dll)

  1. Нажмите Windows + S и введите Windows Terminal. Правой кнопкой мыши выберите Запуск от имени администратора.
    Windows Terminal to fix class not registered vba

  2. Подтвердите UAC, нажав Да.
    Yes

  3. В меню терминала откройте Command Prompt (или нажмите Ctrl + Shift + 2).
    Command Prompt to fix class not registered vba

  4. Перейдите в системную папку 32/64‑битной версии Windows (пример для 64‑битной системы с 32‑битными Office компонентами):

cd C:\Windows\SysWOW64\

Execute command

  1. Зарегистрируйте библиотеку fm20.dll:
Regsvr32 fm20.dll

register dll file to fix class not registered vba

Пояснение: fm20.dll — библиотека, связанная с элементами управления форм в Office. Если эта DLL не зарегистрирована или повреждена, макросы могут выдавать ошибку “Class not registered”.

Совет: если командная регистрация выдаёт ошибку “DLL не найдена”, проверьте наличие файла в каталоге Office (например, C:\Program Files\ or C:\Program Files (x86)\Microsoft Office…) и используйте подходящую папку (SysWOW64 для 32‑битных DLL на 64‑битной Windows).

Альтернатива: надёжные сторонние утилиты восстановления системных или библиотечных файлов могут автоматизировать поиск и регистрацию отсутствующих DLL, но используйте проверенный софт от известных вендоров.

3. Запустите сканы DISM и SFC

  1. Нажмите Windows + R, введите wt и нажмите Ctrl + Shift + Enter, чтобы открыть Windows Terminal с правами администратора.
    Windows Terminal

  2. Подтвердите UAC нажатием Да.
    Click Yes

  3. В переключателе терминала откройте Command Prompt.
    Command Promp to fix class not registered vba

  4. Выполните три команды DISM по очереди (копируйте и вставляйте, нажимая Enter после каждой):

DISM.exe /Online /Cleanup-image /Scanhealth
DISM.exe /Online /Cleanup-image /Restorehealth
DISM.exe /online /cleanup-image /startcomponentcleanup
  1. Затем выполните проверку системных файлов:
sfc /scannow

SFC scan to fix class not registered vba

Пояснение: DISM и SFC ищут и восстанавливают повреждённые файлы Windows и компоненты образа. Это полезно, если ошибка вызвана системной коррупцией, а не конкретно Office.

4. Обновление Microsoft Office

  1. Откройте любое приложение Microsoft Office и создайте новый документ.

  2. Нажмите Файл в левом верхнем углу.
    File menu to fix class not registered vba

  3. Выберите Учетная запись в меню слева.
    Accounts

  4. Под разделом Информация о продукте нажмите Параметры обновления.
    Update options

  5. Выберите Обновить сейчас и дождитесь завершения установки доступных обновлений.
    Update now to fix class not registered vba

Обновление Office часто включает исправления для COM‑библиотек и совместимости, которые устраняют подобные ошибки.

Когда эти методы не помогут

  • Если макрос использует сторонние COM‑надстройки, неправильно зарегистрированные компоненты остаются проблемой — проверьте аддон.
  • Если файл Excel повреждён (локальная книга с макросами), попробуйте экспортировать код VBA в новый файл и протестировать.
  • Если организация использует централизованное управление (MSI/протоколы деплоймента), обратитесь к администратору для повторной установки пакета Office через корпоративный дистрибутив.

Альтернативные подходы и обходные пути

  • Запустите макрос на другом компьютере с корректной установкой Office, чтобы проверить, проблема в файле или в окружении.
  • Временный обход: переписать функциональность макроса на Power Query или Office Scripts (для облачных сценариев), если это приемлемо.
  • Используйте виртуальную машину/контейнер с чистой установкой Office для выполнения критичных макросов.

Быстрая методология диагностики (4 шага)

  1. Изолируйте проблему: запускается ли макрос в Safe Mode Excel (Excel /safe)?
  2. Проверка окружения: разные пользовательские учётные записи, другой ПК.
  3. Восстановление/регистрация: Office Repair → Regsvr32 fm20.dll.
  4. Подтверждение: обновления Office и сканы DISM/SFC.

Decision flowchart (Mermaid)

flowchart TD
  A[Начало: ошибка 'Class not registered'] --> B{Попробовать открыть в Safe Mode?}
  B -- Да, открывается --> C[Проверьте надстройки и отключите их]
  B -- Нет, не открывается --> D[Восстановление Office]
  D --> E{Ошибка сохраняется?}
  E -- Да --> F[Зарегистрировать fm20.dll]
  E -- Нет --> G[Проверьте макрос]
  F --> H[Запустить DISM/SFC]
  H --> I{Результат}
  I -- Исправлено --> J[Обновление Office и тест]
  I -- Не исправлено --> K[Перенос макроса/обратиться к администратору]

Роле‑ориентованный чек‑лист

Для конечного пользователя:

  • Закройте Excel и перезапустите компьютер.
  • Попробуйте открыть файл в безопасном режиме (Excel /safe).
  • Убедитесь, что Office обновлён.

Для системного администратора:

  • Выполните Online Repair для проблемной установки Office.
  • Зарегистрируйте fm20.dll в нужной системной папке.
  • Запустите DISM и SFC на хосте.
  • Проверьте групповую политику/скрипты развёртывания, нет ли перезаписи библиотек.

Критерии приёмки

  • Макросы запускаются без ошибки “Class not registered” в тестовой среде.
  • Функциональность соответствует ожидаемому результату (см. список тестовых сценариев ниже).
  • Изменения можно откатить, либо задокументированы действия по восстановлению.

Краткие тестовые сценарии:

  • Запуск проблемного макроса в том же файле.
  • Экспорт/импорт модулей VBA в новый файл и повторный запуск.
  • Тест на другом устройстве с аналогичной версией Office.

Глоссарий (1‑строчные определения)

  • VBA: Visual Basic for Applications — язык макросов в приложениях Microsoft Office.
  • DLL: Dynamic Link Library — динамическая библиотека кода, используемая программами.
  • DISM: инструмент обслуживания образа развертывания Windows.
  • SFC: System File Checker — утилита проверки и восстановления системных файлов.

Примечания по безопасности и совместимости

  • При регистрации DLL используйте только исходные файлы из доверенных источников и рабочие каталоги Windows/Office.
  • Перед массовыми изменениями в корпоративной среде протестируйте процедуру на одном хосте.

Краткое резюме

Если вы столкнулись с ошибкой “Class not registered” при запуске VBA в Excel, начните с восстановления Office и регистрации fm20.dll. Затем просканируйте систему DISM и SFC и обновите Office. Если причина связана с надстройками или корпоративным развёртыванием, подключайте администратора и используйте представленные чек‑листы.

Важно: всегда делайте резервные копии файлов и документируйте выполненные действия для возможного отката.

Если у вас есть рабочий способ, который не описан здесь, или остались вопросы — оставьте комментарий ниже.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Как устроить идеальную вечеринку для просмотра ТВ
Развлечения

Как устроить идеальную вечеринку для просмотра ТВ

Как распаковать несколько RAR‑файлов сразу
Инструменты

Как распаковать несколько RAR‑файлов сразу

Приватный просмотр в Linux: как и зачем
Приватность

Приватный просмотр в Linux: как и зачем

Windows 11 не видит iPod — способы исправить
Руководство

Windows 11 не видит iPod — способы исправить

PS5: как настроить игровые пресеты
Консоли

PS5: как настроить игровые пресеты

Как переключить камеру в Omegle на iPhone и Android
Руководство

Как переключить камеру в Omegle на iPhone и Android