Добавить надстройку в Microsoft Excel
Задача такая
Нужен bat который добавит в Excel 2016 из файла макрос и запустит его Условия: Действует политика на отключение макросов из excel после перезагрузки Раз в неделю за короткий срок необходимо на 30+ компах добавить макрос в excel Удаленного доступа и админки к компьютерам нет, можно только запустить bat like приложение |
c4uran, зачем добавлять макрос в Рабочую книгу? Каков код макроса?
|
Макрос сложный там целое приложение для экономистов, это нужно для некоторых занятий
Просто чтобы ускорить процесс и как дурак при студентах не бегать и добавлять макрос хотелось бы этот момент ускорить Да и суть в том чтобы добавить макрос не только в определенную книгу а в целом в excel |
Тогда я вообще не понимаю, как именно связаны все перечисленные Вами понятия: политика, перезагрузка, добавление макроса, «в целом в Excel».
|
Возможно это избыточная информация
Необходимо добавить макрос в excel (что бы запуская excel в нем отображался этот макрос) |
c4uran, тогда я отвечу так: невозможно добавить макрос «в excel». Макрос можно добавить только в Рабочую книгу/Шаблон.
|
Хорошо в таком случае я не правильно выразился и имею ввиду надстройку в excel
|
c4uran, Я не знаю уровень ваших доступов к файлам. Поэтому на пальцах:
1. Делаю у себя новую чистую книгу с нужным макросом. 2. Последовательно: - открываю новую чистую книгу; - открываю на Ваших компьютерах книгу; - импортирую, если нужно, имеющиеся там листы в Вашу чистую книгу; - закрываю старый файл; - сохраняю новый файл вместо старого; закрываю книгу. Пункт 2 в цикле. Наверное, реализуется на vbs. А если это для студентов, то разве не надо просто скопировать одинаковые таблицы (или шаблоны) с правильным макросом на их машины, чтобы на занятии Вас понимали все одинаково? При этом никаких заморочек с обновлением макроса, импортом старых листов и т д В любом случае права на запись у Вас должны быть. |
megaloman, я неправильно выразился, имел ввиду надстройку excel а не макрос, она автоматически удаляется каждый день и нужна только раз или два в неделю но на всех компьютерах
|
c4uran, Вы очень странно выражаетесь. Сделайте перечень скриншотов с описанием, либо запишите видео того, как Вы делаете это «ручками».
|
Прошу прощение, сейчас попробую описать подробнее процесс который приходится делать руками на 30 компьютерах:
1. Запускаю Excel 2. Щелкаю в левый верхний угол на выпадающее меню файл 3. Там выбираю Параметры 4. В открывшемся меню Параметры Excel в списке слева выбираю Надстройки 5. В открывшемся меню снизу где написано Управление выбираю в выпадающем меню Надстройки Excel и правее нажимаю кнопку Перейти 6. В открывшемся меню Надстройки справа выбираю кнопку Обзор... 7. В открывшемся меню выбора файла выбираю файл надстройки в формате XLAM 8. Снова открывается меню Надстройки и там уже в списке доступных надстроек я ставлю галочку у имени надстройки которую только что добавил 9. Нажимаю Ок и меню Надстройки закрывается я оказываюсь в начальном экране с таблицей где среди верхних выпадающих меню ( файл, главная, вставка, итд появляется раздел - Надстройки 10. выбираю этот раздел и теперь могу запустить надстройку которую я добавил |
Цитата:
Код:
With CreateObject("Excel.Application") Пропишите свои имена надстройки и xlam-файла. Конечно, это сработает, если Office на всех машинах установлен одинаково и путь к надстройке одинаков. |
c4uran, у Вас есть административные привилегии на машине? Где будет размещаться файл надстройки?
|
Вложений: 2
Не подключает вываливает такую ошибку, прикладываю ошибку и саму надстройку
|
Iska, надстройка лежит на диске С или в Документах
|
c4uran, ответьте на мои вопросы.
|
Iska, простите пока долго отвечал вопросы еще не появились, прав админа на компьютерах нет
|
c4uran, тогда установка надстройки возможна только в режиме «на пользователя».
Попробуйте так: Скрытый текст
Код:
Option Explicit Надстройка mc.xlam должна находиться рядом со скриптом. Она будет скопирована в профиль пользователя, а затем зарегистрирована. |
Iska, Работает спасибо, а такой вопрос почему реализация на vbs, cmd нельзя сделать подобный вызов?
|
c4uran, такую реализацию никак нельзя сделать на пакетных файлах — там нет поддержки Automation. Кроме WSH, аналогичное также можно проделать посредством PowerShell.
P.S. Исправьте заголовок темы на более соответствующее содержанию, наподобие «Добавить надстройку в Microsoft Excel», путём редактирования первого сообщения темы. |
Iska, поправил, а если не сложно можете показать реализацию на powershell?
|
c4uran, примерно так:
Скрытый текст
Код:
$sSourceFile = Join-Path -Path $PSScriptRoot -ChildPath "mc.xlam" |
Iska, Вы волшебник! спасибо большое! Хоть я и вроде понимаю что написано в пс скрипте но могли бы уточнить почему используете запрос [System.IO.File]::Copy это вроде вызов из .net
и если не сложно можете подсказать где можно изучить запросы приложений например офиса т.к этот абзац для меня загадка: Код:
$oExcel = New-Object -ComObject 'Excel.Application' |
Цитата:
Цитата:
Скрытый текст
Надеюсь, что в Вашей версии Microsoft Office осталось так же. Ну, или в MSDN. |
Время: 01:40. |
Время: 01:40.
© OSzone.net 2001-