Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Добавить надстройку в Microsoft Excel

Ответить
Настройки темы
CMD/BAT - Добавить надстройку в Microsoft Excel

Пользователь


Сообщения: 122
Благодарности: 6

Профиль | Отправить PM | Цитировать


Изменения
Автор: c4uran
Дата: 24-05-2018
Задача такая

Нужен bat который добавит в Excel 2016 из файла макрос и запустит его

Условия:

Действует политика на отключение макросов из excel после перезагрузки
Раз в неделю за короткий срок необходимо на 30+ компах добавить макрос в excel
Удаленного доступа и админки к компьютерам нет, можно только запустить bat like приложение

Отправлено: 11:46, 23-05-2018

 

Пользователь


Сообщения: 122
Благодарности: 6

Профиль | Отправить PM | Цитировать


Прошу прощение, сейчас попробую описать подробнее процесс который приходится делать руками на 30 компьютерах:

1. Запускаю Excel
2. Щелкаю в левый верхний угол на выпадающее меню файл
3. Там выбираю Параметры
4. В открывшемся меню Параметры Excel в списке слева выбираю Надстройки
5. В открывшемся меню снизу где написано Управление выбираю в выпадающем меню Надстройки Excel и правее нажимаю кнопку Перейти
6. В открывшемся меню Надстройки справа выбираю кнопку Обзор...
7. В открывшемся меню выбора файла выбираю файл надстройки в формате XLAM
8. Снова открывается меню Надстройки и там уже в списке доступных надстроек я ставлю галочку у имени надстройки которую только что добавил
9. Нажимаю Ок и меню Надстройки закрывается я оказываюсь в начальном экране с таблицей где среди верхних выпадающих меню ( файл, главная, вставка, итд появляется раздел - Надстройки
10. выбираю этот раздел и теперь могу запустить надстройку которую я добавил

Отправлено: 10:24, 24-05-2018 | #11



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

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


Ветеран


Contributor


Сообщения: 2708
Благодарности: 1684

Профиль | Отправить PM | Цитировать


Цитата c4uran:
Удаленного доступа и админки к компьютерам нет, можно только запустить bat like приложение »
То есть, на каждом компьютере ручками Вы хотите запустить что-то типа командного файла? Для такого случая вот .vbs -скрипт на примере надстройки "Поиск решения".
Код: Выделить весь код
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
Благодарности: 8086

Профиль | Отправить PM | Цитировать


c4uran, у Вас есть административные привилегии на машине? Где будет размещаться файл надстройки?

Отправлено: 12:16, 24-05-2018 | #13


Пользователь


Сообщения: 122
Благодарности: 6

Профиль | Отправить PM | Цитировать


Изображения
Тип файла: png 1.PNG
(9.4 Kb, 4 просмотров)
Вложения
Тип файла: zip mc.zip
(183.1 Kb, 4 просмотров)

Не подключает вываливает такую ошибку, прикладываю ошибку и саму надстройку

Отправлено: 12:43, 24-05-2018 | #14


Пользователь


Сообщения: 122
Благодарности: 6

Профиль | Отправить PM | Цитировать


Iska, надстройка лежит на диске С или в Документах

Отправлено: 12:44, 24-05-2018 | #15


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


c4uran, ответьте на мои вопросы.

Отправлено: 12:44, 24-05-2018 | #16


Пользователь


Сообщения: 122
Благодарности: 6

Профиль | Отправить PM | Цитировать


Iska, простите пока долго отвечал вопросы еще не появились, прав админа на компьютерах нет

Отправлено: 12:46, 24-05-2018 | #17


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить 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
Благодарности: 6

Профиль | Отправить PM | Цитировать


Iska, Работает спасибо, а такой вопрос почему реализация на vbs, cmd нельзя сделать подобный вызов?

Отправлено: 13:30, 24-05-2018 | #19


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


c4uran, такую реализацию никак нельзя сделать на пакетных файлах — там нет поддержки Automation. Кроме WSH, аналогичное также можно проделать посредством PowerShell.

P.S. Исправьте заголовок темы на более соответствующее содержанию, наподобие «Добавить надстройку в Microsoft Excel», путём редактирования первого сообщения темы.

Отправлено: 13:40, 24-05-2018 | #20



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Добавить надстройку в Microsoft Excel

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
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




 
Переход