|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Добавить надстройку в Microsoft Excel |
|
CMD/BAT - Добавить надстройку в Microsoft Excel
|
Пользователь Сообщения: 122 |
Профиль | Отправить PM | Цитировать
Задача такая
Нужен bat который добавит в Excel 2016 из файла макрос и запустит его Условия: Действует политика на отключение макросов из excel после перезагрузки Раз в неделю за короткий срок необходимо на 30+ компах добавить макрос в excel Удаленного доступа и админки к компьютерам нет, можно только запустить bat like приложение |
|
Отправлено: 11:46, 23-05-2018 |
Пользователь Сообщения: 122
|
Профиль | Отправить PM | Цитировать Прошу прощение, сейчас попробую описать подробнее процесс который приходится делать руками на 30 компьютерах:
1. Запускаю Excel 2. Щелкаю в левый верхний угол на выпадающее меню файл 3. Там выбираю Параметры 4. В открывшемся меню Параметры Excel в списке слева выбираю Надстройки 5. В открывшемся меню снизу где написано Управление выбираю в выпадающем меню Надстройки Excel и правее нажимаю кнопку Перейти 6. В открывшемся меню Надстройки справа выбираю кнопку Обзор... 7. В открывшемся меню выбора файла выбираю файл надстройки в формате XLAM 8. Снова открывается меню Надстройки и там уже в списке доступных надстроек я ставлю галочку у имени надстройки которую только что добавил 9. Нажимаю Ок и меню Надстройки закрывается я оказываюсь в начальном экране с таблицей где среди верхних выпадающих меню ( файл, главная, вставка, итд появляется раздел - Надстройки 10. выбираю этот раздел и теперь могу запустить надстройку которую я добавил |
Отправлено: 10:24, 24-05-2018 | #11 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 2708
|
Профиль | Отправить PM | Цитировать Цитата c4uran:
With CreateObject("Excel.Application") .Visible = True ' .Visible = False .Workbooks.Add .AddIns("Поиск решения").Installed = False .AddIns.Add ("C:\Program Files\Microsoft Office\Office14\Library\SOLVER\SOLVER.XLAM") .AddIns("Поиск решения").Installed = True .ActiveWorkbook.Close .Quit End With Пропишите свои имена надстройки и xlam-файла. Конечно, это сработает, если Office на всех машинах установлен одинаково и путь к надстройке одинаков. |
|
------- Отправлено: 12:04, 24-05-2018 | #12 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать c4uran, у Вас есть административные привилегии на машине? Где будет размещаться файл надстройки?
|
Отправлено: 12:16, 24-05-2018 | #13 |
Пользователь Сообщения: 122
|
Профиль | Отправить PM | Цитировать Не подключает вываливает такую ошибку, прикладываю ошибку и саму надстройку
|
Отправлено: 12:43, 24-05-2018 | #14 |
Пользователь Сообщения: 122
|
Профиль | Отправить PM | Цитировать Iska, надстройка лежит на диске С или в Документах
|
Отправлено: 12:44, 24-05-2018 | #15 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать c4uran, ответьте на мои вопросы.
|
Отправлено: 12:44, 24-05-2018 | #16 |
Пользователь Сообщения: 122
|
Профиль | Отправить PM | Цитировать Iska, простите пока долго отвечал вопросы еще не появились, прав админа на компьютерах нет
|
Отправлено: 12:46, 24-05-2018 | #17 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать c4uran, тогда установка надстройки возможна только в режиме «на пользователя».
Попробуйте так: Скрытый текст
Option Explicit
Dim strSourceFile
Dim strDestPath
Dim objFSO
Dim objFolder
Set objFSO = WScript.CreateObject("Scripting.FileSystemObject")
strSourceFile = objFSO.BuildPath(objFSO.GetParentFolderName(WScript.ScriptFullName), "mc.xlam")
If objFSO.FileExists(strSourceFile) Then
Set objFolder = WScript.CreateObject("Shell.Application").NameSpace("shell:AppData")
If Not objFolder Is Nothing Then
strDestPath = objFolder.self.Path & "\Microsoft\AddIns"
If objFSO.FolderExists(strDestPath) Then
objFSO.CopyFile strSourceFile, strDestPath & "\", True
With WScript.CreateObject("Excel.Application")
.Workbooks.Add
.AddIns.Add(objFSO.BuildPath(strDestPath, objFSO.GetFileName(strSourceFile))).Installed = True
.Quit
End With
Else
WScript.Echo "Can't find destination folder [" & strDestPath & "]."
WScript.Quit 3
End If
Set objFolder = Nothing
Else
WScript.Echo "Can't parse [shell:AppData] special folder."
WScript.Quit 2
End If
Else
WScript.Echo "Can't find source file [" & strSourceFile & "]."
WScript.Quit 1
End If
Set objFSO = Nothing
WScript.Quit 0
Надстройка mc.xlam должна находиться рядом со скриптом. Она будет скопирована в профиль пользователя, а затем зарегистрирована. |
Отправлено: 13:14, 24-05-2018 | #18 |
Пользователь Сообщения: 122
|
Профиль | Отправить PM | Цитировать Iska, Работает спасибо, а такой вопрос почему реализация на vbs, cmd нельзя сделать подобный вызов?
|
Отправлено: 13:30, 24-05-2018 | #19 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать c4uran, такую реализацию никак нельзя сделать на пакетных файлах — там нет поддержки Automation. Кроме WSH, аналогичное также можно проделать посредством PowerShell.
P.S. Исправьте заголовок темы на более соответствующее содержанию, наподобие «Добавить надстройку в Microsoft Excel», путём редактирования первого сообщения темы. |
Отправлено: 13:40, 24-05-2018 | #20 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
VBA - Помогите написать макрос в Excel, экспорт данных из Excel в Word. | E.v.g | Программирование и базы данных | 7 | 03-05-2018 22:18 | |
Разное - Макрос в Excel | nipopadyuk | Microsoft Office (Word, Excel, Outlook и т.д.) | 2 | 19-11-2015 08:55 | |
VBA - макрос excel | Maza11 | Программирование и базы данных | 27 | 21-07-2015 10:12 | |
VBS/WSH/JS - исправить макрос excel | oleg-sm | Скриптовые языки администрирования Windows | 1 | 09-08-2013 19:01 | |
Разное - Макрос Excel. | KiriJolit | Microsoft Office (Word, Excel, Outlook и т.д.) | 0 | 02-12-2010 23:19 |
|