Для этой книги недоступны проект VBA... - проблема решена!

Сегодня решил установить себе для пробы Офис 2010. Хотя офисом Майкрософта последний год не пользуюсь (вполне устраивает LibreOffice), но для пробы и оценки так сказать решил поставить. Установил только самые нужные программы и компоненты: Access, Excel, Word и PowerPoint. И в первую очередь решил проверить работоспособность старых файлов, которые часто использовал в работе с использованием ранних версий Экселя, и основной функционал в них написан на VBA.
В общем Мазай, открываю файл и Эксель выдает мне:
Для этой книги недоступны проект VBA, элементы управления ActiveX и остальные программные средства
Офигеть, слава и хвала Мастдаю, который не может обеспечить совместимость в одной линейке своих же продуктов. Идиотизм...
Что делать? Приходиться лезть в Инет и искать решение вопроса. Детище Империи Гггг... выдает мне больше 100 страниц с такой же проблемой и вопросами как её решить (на русском языке конечно). Нахожу на одном форуме решение - переустановить компоненты Visual Basic из пакета Офиса 2010. Пробую не помогает... Да, интересно еще то, что когда Офис показывает ошибку (Для этой книги недоступны проект VBA, элементы управления ActiveX и остальные программные средства), то в окне ошибки внизу написано: перейдите на сайт office.com и задайте поиск "конвертеры VBA". Аналогично - пробовал - эффект нулевой. Все настройки безопасности - на нуле т.е. разрешено все без ограничений.
Причина то в том оказалась, что интерфейс Офиса перевели дословно, а решение проблемы на русской версии office.com нет. Додумался полезть искать решение в англоязычной версии.
В итоге нашел, итак:
1. Ссылка:
http://support.microsoft.com/kb/926430 - Читаем :)
2. Скачиваем файл по ссылке вверху:
Hotfix Download Available View and request hotfix downloads
Не смущайтесь, что там будет написано для Microsoft Office Excel 2007 English x86. Решение работает для разных версий и платформ. У меня Офис 2010 Русский х86.
3. Распаковываем скачанный файл (там будет двухуровневый zip архив).
4. Открываем инструкцию в распакованной папке Readme.
5. Читаем что там написано (показываю на моем примере, вам надо будет найти свою версию и платформу):
Для Excel 2010 или более поздней версии
На 32-битной ОС:
2. Скопировать файлы:
a. vbacv10.dll, vbacv10d.dll: в папку \Program Files\Common Files\Microsoft Shared\vba\vba7\
b. xl5en32.olb, gren50.olb: в папку где содержится исполняемый файл Excel.exe, по умолчанию: \Program Files\Microsoft Office\Office14\
c. vbaen32.olb, vbaend32.olb: в системную папку Windows: \Windows\System32\
далее для обеих платформ 32- и 64-бит:
3. Запустить файл vbaconv.bat от администратора.
(Конец установки)
И вот теперь - Аллилуйя! :) Все работает. Далее как рекомендует Мелкософт надо сделать действия по миграции старого кода в новый - см. на странице того же исправления:
RESOLUTION
Step 2: Migrate Excel 5.0/95 code
Удачи! И пусть эта проблема больше не появляется...

Комментарии

Анонимный написал(а)…
Огромное спасибо, помогло!
Lambda Z написал(а)…
Рад, что помогло. Проверено на собственной шкуре, поскольку все остальные "рецепты" в Интернете - до лампочки.
Юлия написал(а)…
У меня такая же проблема только с Excel2007. На компе установлено 3 версии excel. (2003, 2007, 2010)
После ваших манипуляций один и тот же проект vba работает на 2003 и 2010, а вот 2007 ни в какую не хочет видеть ни макросы ни сам vba.
Как можно решить эту проблему?
Lambda Z написал(а)…
Предполагаю, что вы не скопировали указанные файлы в папку Офиса 2007. Правильные каталоги указаны в инструкции:
==================================================
For Excel 2007
--------------

On a 32-bit operating system:
2. Copy the following files into the following folder on your system drive:
vbacv10.dll, vbacv10d.dll: \Program Files\Common Files\Microsoft Shared\vba\vba6\

-OR-

On a 64-bit operating system with 32-bit Excel (WoW):
2. Copy the following files into the following folder on your system drive:
vbacv10.dll, vbacv10d.dll: \Program Files (x86)\Common Files\Microsoft Shared\vba\vba6\
==================================================

Просмотрите еще раз внимательно инструкцию.
Анонимный написал(а)…
Спасибо! Реально все работает!!!
Очень удачный совет.
Анонимный написал(а)…
Ссылка не работает :((
она еще не действующая?
Lambda Z написал(а)…
Почему? Ссылка рабочая, проверил. Прочитайте внимательно пост, что на этой странице надо нажимать, чтобы скачать фикс-пакет.
Анонимный написал(а)…
Еще вопросик. Делаю все по инструкции, но когда дохожу до шага "Скопировать файлы":a. vbacv10.dll, vbacv10d.dll: в папку \Program Files\Common Files\Microsoft Shared\vba\vba7\, У меня папка за место vba7 почему то vba6(((Что делать то???Куда копировать
Lambda Z написал(а)…
Все нормально, без паники :)
Просто вы пытаетесь выполнить инструкции для Офиса 2010, в то время как у вас стоит Офис 2007.
Еще раз уточните вашу версию Офиса и скопируйте нужные файлы в папку vba6 если у вас 2007 версия Офиса. Инструкция для него на 4 комментария выше.
Удачи, если что - пишите...
Veronika написал(а)…
Что-то не получается скопировать файлы в папку \Program Files\Common Files\Microsoft Shared\vba\vba7\
Может, я что-то не правильно делаю, обьясните, плиз, для чайников,как правильно скопировать, пошагово.До этого все получалось)
Lambda Z написал(а)…
Вероника, что у Вас конкретно не получается? Вы не описали суть проблемы. Папка отсутствует или защищена от записи и какая версия Офиса?
Анонимный написал(а)…
Спасибо. Все заработало.
tiestoman написал(а)…
РРРРЕСПЕКТ!!!!

очень помогло...как раз поставил надстройку password.xla
а она не хочет ставиться, выдаёт такие дже ругательства...вощем чел, выручил спасибо!!!

а то уже хотел покупать "рекавер" за 2 рубаса...блин, надо то было пару раз снять защиту, и так вовремя этов сё подвернулось!!!
Lambda Z написал(а)…
Рад, что помогло! :)
Анонимный написал(а)…
Мужик, ты сделал мой день! Спасибо тебе большое, что раскопал решение!
Lambda Z написал(а)…
Рад, что решение помогло! :)
Анонимный написал(а)…
Скачал офис 2013 пробную версию на месяц (до этого стоял "стартер"), хотел открыть в екселе документ c VBA, не открывает. Попробовал Ваш способ - У меня в указанном месте нет папок \vba\vba7\, что делать?
Lambda Z написал(а)…
Вероятно в Офисе 2013 они убрали поддержку старых версий навсегда. Вообще надо читать что там пишет Офис 2013. Может какая ошибка или ссылка на хелп... Майкрософт стимулирует всех переходить на новые версии ПО. Поэтому не удивлюсь, если поддержку старого VBA действительно убрали.
Анонимный написал(а)…
Cодержание "ругательств" такое же, как указано здесь:
http://clck.ru/8oHLF
Благодарю за отклик.
Lambda Z написал(а)…
amr71, на этой страничке подробно описано о проблеме: http://support.microsoft.com/kb/926430. Также есть ссылка на автоматический конвертер кода и хотфикс от Микрософта (скачать можно по этой ссылке: http://hotfixv4.microsoft.com/Microsoft%20Office%20Excel%202007/nosp/MicrosoftOfficeVBAConvertersSigned/6.0.2900.2180/free/421567_ENU_i386_zip.exe) :) - проверил фикс тот же, ничего не поменялось.
У вас действительно нет папки: X:\Program Files\Common Files\microsoft shared\VBA\VBA7 ? Может есть VBA8 и туда попробовать положить или сделать вручную эту папку VBA7 и туда закинуть? Попробуйте, может сработает...
Анонимный написал(а)…
Вы пишите,что папки расположены на:
X:\Program Files\Common Files\microsoft shared\VBA\VBA7 ,
я ищу их на диске "С", у меня вроде бы нет диска "Х". Может я не там эти папки ищу?
Lambda Z написал(а)…
Ну я под "Х" имел ввиду Ваш диск. Я же не знаю, может быть у Вас Офис на диск D установлен с целью экономии места на системном диске.
Может попробуйте еще в папку VBA7.1 или может VBA7.2 закинуть или похожую.
Анонимный написал(а)…
Папок VBA у меня нет вообще в данном пути. На букву "V" там другие папку к вижуалу они не относятся, но пробовал в них размещать - эффекта нет. Еще раз,спасибо за содействие.
Lambda Z написал(а)…
amr71, мелькнула мысль, а у Вас компоненты VBA вообще установлены? Может Вы не все проинсталлили, поэтому и папок нет?

Популярные сообщения из этого блога

Как в The Bat 4.x изменить кодировку шаблона письма.

Отсутствует исполняющее ядро для расширения имени файла vbs