Проблема открытия старых проектов Excel VBA в Office 2007/2010

imageПри попытке открытия файлов Excel “нашпигованных” VBS и созданных в старых версиях Excel (до Office 2007) нарвался на сообщение:

Для открытия содержащегося в этом файле проекта VBA требуется компонент, который в настоящий момент не установлен. Файл будет открыт без проекта VBA…

image

И затем появляется следующее сообщение:

Для этой книги недоступны проект VBA, элементы управления ActiveX и остальные программные средства

image

При этом механизмы VBS не работают должным образом и работать с файлом, как следствие, не представляется возможным. В моём случае проблема проявилась на терминальном сервере с Windows Server 2008 R2 EN с установленными 32-битными Office 2007 RU и Office 2010 RU.

Для решения проблемы можно воспользоваться исправлением описанным в статье KB926430 — You are requested to «search Microsoft Office Online for «VBA Converters» when you try to open or save a workbook in Excel 2007 or Excel 2010

В статье приводиться ссылка на форму заявки на скачивание хотфикса. После того вы закажете хотфикс, в почту придёт письмо с ссылкой на скачивание файла 421567_ENU_i386_zip.exe. Распаковываем этот архив и получаем файл Microsoft Office VBA Converters — Signed.EXE, который также в свою очередь распаковываем. В составе распакованных файлов внимательно читаем инструкцию в файле Readme.txt

Следуя инструкциям файла выполняем следующие манипуляции:

Для Excel 2007

На 32-битной ОС:
— Копируем файлы vbacv10.dll, vbacv10d.dll
в папку  %ProgramFiles%\Common Files\Microsoft Shared\vba\vba6

ИЛИ

На 64-битной ОС с 32-битным Excel (WoW):
— Копируем файлы vbacv10.dll, vbacv10d.dll
в папку %ProgramFiles(x86)%\Common Files\Microsoft Shared\vba\vba6

Для Excel 2010

На 32-битной ОС:
— Копируем файлы vbacv10.dll, vbacv10d.dll
в папку %ProgramFiles%\Common Files\Microsoft Shared\vba\vba7

— Копируем файлы xl5en32.olb, gren50.olb
в папку где расположен файл Excel.exe%ProgramFiles%\Microsoft Office\Office14

— Копируем файлы vbaen32.olb, vbaend32.olb
в системную папку Windows — %SystemRoot%\System32

ИЛИ

На 64-битной ОС с 32-битным Excel (WoW):
— Копируем файлы vbacv10.dll, vbacv10d.dll
в папку %ProgramFiles(x86)%\Common Files\Microsoft Shared\vba\vba7

— Копируем файлы xl5en32.olb, gren50.olb
в папку где расположен файл Excel.exe%ProgramFiles(x86)%\Microsoft Office\Office14
 
— Копируем файлы vbaen32.olb, vbaend32.olb
в системную папку Windows — %SystemRoot%\SysWOW64

После этого независимо от разрядности ОС с правами Администратора выполняем пакетный файл регистрации необходимых компонент — vbaconv.bat

В моём случае, как я уже отметил, в системе присутствовали каталоги как Office 2007 так и Office 2010, и поэтому я выполнил копирование и тех и других файлов, за исключением того что файлы vbaen32.olb, vbaend32.olb в моём случае уже присутствовали в системном каталоге, и поэтому я не стал их переписывать.

После этого нужные мне файлы заработали.

Всего комментариев: 5 Комментировать

  1. Denis /

    Отлично всё заработало как часики

  2. Елена /

    Спасибо огромное! Пригодилось и всё заработало!

  3. Rigo /

    «После этого независимо от разрядности ОС с правами Администратора выполняем пакетный файл регистрации необходимых компонент — vbaconv.bat»
    Где его найти этот пакетный файл регистрации?

    1. Алексей Максимов / Автор записи

      В архиве с хотфиксом, о котором идёт речь в заметке.

      1. Rigo /

        Ага, спасибо, уже нашёл.

Добавить комментарий