Показать полную графическую версию : Добавить надстройку в Microsoft Excel
Задача такая
Нужен bat который добавит в Excel 2016 из файла макрос и запустит его
Условия:
Действует политика на отключение макросов из excel после перезагрузки
Раз в неделю за короткий срок необходимо на 30+ компах добавить макрос в excel
Удаленного доступа и админки к компьютерам нет, можно только запустить bat like приложение
c4uran, зачем добавлять макрос в Рабочую книгу? Каков код макроса?
Макрос сложный там целое приложение для экономистов, это нужно для некоторых занятий
Просто чтобы ускорить процесс и как дурак при студентах не бегать и добавлять макрос хотелось бы этот момент ускорить
Да и суть в том чтобы добавить макрос не только в определенную книгу а в целом в excel
Тогда я вообще не понимаю, как именно связаны все перечисленные Вами понятия: политика, перезагрузка, добавление макроса, «в целом в Excel».
Возможно это избыточная информация
Необходимо добавить макрос в excel (что бы запуская excel в нем отображался этот макрос)
c4uran, тогда я отвечу так: невозможно добавить макрос «в excel». Макрос можно добавить только в Рабочую книгу/Шаблон.
Хорошо в таком случае я не правильно выразился и имею ввиду надстройку в excel
megaloman
23-05-2018, 14:39
c4uran, Я не знаю уровень ваших доступов к файлам. Поэтому на пальцах:
1. Делаю у себя новую чистую книгу с нужным макросом.
2. Последовательно:
- открываю новую чистую книгу;
- открываю на Ваших компьютерах книгу;
- импортирую, если нужно, имеющиеся там листы в Вашу чистую книгу;
- закрываю старый файл;
- сохраняю новый файл вместо старого; закрываю книгу.
Пункт 2 в цикле.
Наверное, реализуется на vbs.
А если это для студентов, то разве не надо просто скопировать одинаковые таблицы (или шаблоны) с правильным макросом на их машины, чтобы на занятии Вас понимали все одинаково? При этом никаких заморочек с обновлением макроса, импортом старых листов и т д
В любом случае права на запись у Вас должны быть.
megaloman, я неправильно выразился, имел ввиду надстройку excel а не макрос, она автоматически удаляется каждый день и нужна только раз или два в неделю но на всех компьютерах
c4uran, Вы очень странно выражаетесь. Сделайте перечень скриншотов с описанием, либо запишите видео того, как Вы делаете это «ручками».
Прошу прощение, сейчас попробую описать подробнее процесс который приходится делать руками на 30 компьютерах:
1. Запускаю Excel
2. Щелкаю в левый верхний угол на выпадающее меню файл
3. Там выбираю Параметры
4. В открывшемся меню Параметры Excel в списке слева выбираю Надстройки
5. В открывшемся меню снизу где написано Управление выбираю в выпадающем меню Надстройки Excel и правее нажимаю кнопку Перейти
6. В открывшемся меню Надстройки справа выбираю кнопку Обзор...
7. В открывшемся меню выбора файла выбираю файл надстройки в формате XLAM
8. Снова открывается меню Надстройки и там уже в списке доступных надстроек я ставлю галочку у имени надстройки которую только что добавил
9. Нажимаю Ок и меню Надстройки закрывается я оказываюсь в начальном экране с таблицей где среди верхних выпадающих меню ( файл, главная, вставка, итд появляется раздел - Надстройки
10. выбираю этот раздел и теперь могу запустить надстройку которую я добавил
megaloman
24-05-2018, 12:04
Удаленного доступа и админки к компьютерам нет, можно только запустить 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 на всех машинах установлен одинаково и путь к надстройке одинаков.
c4uran, у Вас есть административные привилегии на машине? Где будет размещаться файл надстройки?
Не подключает вываливает такую ошибку, прикладываю ошибку и саму надстройку
Iska, надстройка лежит на диске С или в Документах
c4uran, ответьте на мои вопросы.
Iska, простите пока долго отвечал вопросы еще не появились, прав админа на компьютерах нет
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 должна находиться рядом со скриптом. Она будет скопирована в профиль пользователя, а затем зарегистрирована.
Iska, Работает спасибо, а такой вопрос почему реализация на vbs, cmd нельзя сделать подобный вызов?
c4uran, такую реализацию никак нельзя сделать на пакетных файлах — там нет поддержки Automation. Кроме WSH, аналогичное также можно проделать посредством PowerShell.
P.S. Исправьте заголовок темы на более соответствующее содержанию, наподобие «Добавить надстройку в Microsoft Excel», путём редактирования первого сообщения темы.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.