Перенос личной панели инструментов Excel на другой ПК
Модератор: Naeel Maqsudov
Ну вот я написал свои макросы в рабочей книге или в книге PERSONAL.XLS.
Создал кнопки и панель инструментов, которые вызывают макросы.
Теперь хочу поделиться с товарищем :shock: ,
Как мне переносить мои панели, кнопки и скрипты на другую ПЭВМ ?
Создал кнопки и панель инструментов, которые вызывают макросы.
Теперь хочу поделиться с товарищем :shock: ,
Как мне переносить мои панели, кнопки и скрипты на другую ПЭВМ ?
Рабочую книгу Personal.xls можно переносить с одной машины на другую, во всяком случае раньше это было возможно.
Что касается кнопок и панелей инструментов, то здесь есть выбор … Изменения стандартных панелей можно производить программно, например, при открытии файла Personal.xls, а можно поискать файлы с расширением .xlb, насколько я помню именно там хранится подобная информация (более подробно см. help)
Если же речь идёт о собственной панели инструментов, то её можно вложить в рабочую книгу, тем самым обеспечив доступ к ней других пользователей) Если вложенная панель предназначена для использования в одной отдельно взятой рабочей книге, то при её закрытии/деактивации эту панель следует удалять.
Что касается кнопок и панелей инструментов, то здесь есть выбор … Изменения стандартных панелей можно производить программно, например, при открытии файла Personal.xls, а можно поискать файлы с расширением .xlb, насколько я помню именно там хранится подобная информация (более подробно см. help)
Если же речь идёт о собственной панели инструментов, то её можно вложить в рабочую книгу, тем самым обеспечив доступ к ней других пользователей) Если вложенная панель предназначена для использования в одной отдельно взятой рабочей книге, то при её закрытии/деактивации эту панель следует удалять.
pashulka,
проверил ваши предложения:
1. Перенес книгу PERSONAL.XLS
откуда - C:\Documents and Settings\USER_1\Application Data\Microsoft\Excel\XLSTART
куда - C:\Documents and Settings\USER_2\Application Data\Microsoft\Excel\XLSTART
2. Перенес конфигурацию панелей Excel-я - Excel.xlb
откуда - C:\Documents and Settings\USER_1\Application Data\Microsoft\Excel
куда - C:\Documents and Settings\USER_2\Application Data\Microsoft\Excel
Все перенеслось, но два недостатка -
1. Кнопки остались настоенные на вызов макросов из PERSONAL.XLS из папки C:\Documents and Settings\USER_1\Application Data\Microsoft\Excel\XLSTART, приходиться заново переназначать кнопки на макросы.
2. Excel.xlb - полностью затирает представление панелей пользователя USER_2, что несколько нехорошо.
Вариант с переносм вложенной панели попробовал, но меня не устраивает, т.к. макросы должны работать для всех книг и хранятся в PERSONAL.XLS (кстати один из них - ваш макрос по подсчету символов в ячейке
) - отлично работает - спасибо.
проверил ваши предложения:
1. Перенес книгу PERSONAL.XLS
откуда - C:\Documents and Settings\USER_1\Application Data\Microsoft\Excel\XLSTART
куда - C:\Documents and Settings\USER_2\Application Data\Microsoft\Excel\XLSTART
2. Перенес конфигурацию панелей Excel-я - Excel.xlb
откуда - C:\Documents and Settings\USER_1\Application Data\Microsoft\Excel
куда - C:\Documents and Settings\USER_2\Application Data\Microsoft\Excel
Все перенеслось, но два недостатка -
1. Кнопки остались настоенные на вызов макросов из PERSONAL.XLS из папки C:\Documents and Settings\USER_1\Application Data\Microsoft\Excel\XLSTART, приходиться заново переназначать кнопки на макросы.
2. Excel.xlb - полностью затирает представление панелей пользователя USER_2, что несколько нехорошо.
Вариант с переносм вложенной панели попробовал, но меня не устраивает, т.к. макросы должны работать для всех книг и хранятся в PERSONAL.XLS (кстати один из них - ваш макрос по подсчету символов в ячейке
Avsha,
Там ещё был третий вариант, с программным созданием кнопок, команд, меню и т.п. В этом случае, проблем с настройками, в т.ч. и персональными не будет … Кстати, Вы не пробовали вкладывать собственную панель инструментов именно в рабочую книгу Personal.xls
Вообще-то подобные вопросы носят в себе слишком много нюансов, например, когда я говорил о переносе Personal.xls, то не рассматривал это деяние с точки зрения переноса созданных кнопок и т.п.
P.S. Подсчёт количества символов не только в ячейке, но и в диапазоне ячеек, ведь именно для этого я предложил альтернативный вариант.
Там ещё был третий вариант, с программным созданием кнопок, команд, меню и т.п. В этом случае, проблем с настройками, в т.ч. и персональными не будет … Кстати, Вы не пробовали вкладывать собственную панель инструментов именно в рабочую книгу Personal.xls
Вообще-то подобные вопросы носят в себе слишком много нюансов, например, когда я говорил о переносе Personal.xls, то не рассматривал это деяние с точки зрения переноса созданных кнопок и т.п.
P.S. Подсчёт количества символов не только в ячейке, но и в диапазоне ячеек, ведь именно для этого я предложил альтернативный вариант.
Наковырял еще такое составное решение:
1. Создаем панель инструментов MyPanel
2. Вкладываем в PERSONAL.XLS
3. Копируем только PERSONAL.XLS
Связи кнопок на макросы не теряются и пользователю добавляется только дополнительная панель MyPanel.
1. Создаем панель инструментов MyPanel
2. Вкладываем в PERSONAL.XLS
3. Копируем только PERSONAL.XLS
Связи кнопок на макросы не теряются и пользователю добавляется только дополнительная панель MyPanel.
А Вы шустрый однако ... :P только я предложил Вам этот вариант, а Вы его уже вовсю используете.
pashulka
Да нет, я не такой шустрый, просто чуть раньше разобрался и с вами одновременно написал сообщение.
Вроде все хорошо с PERSONAL.XLS.
Но меня привлекает вариант это делать через надстройку
Пробовал делать следующее:
1. Создал обычную книгу .xls, в нее положил макросы и панели, кнопки и меню которой связаны с макросами этой книги.
2. Сохранил книгу как надстройку .xla соответственно в путь -C:\Documents and Settings\USER_1\Application Data\Microsoft\AddIns
3. Подключил надстройку к Excel-ю, \Сервис\Надстройки\My_AddIn
Все заработало, но есть вопросы...
Вложенная панель сразу "влезает" в среду Excel-я, а потом ее можно удалить только вручную.
2. Меню во вложенной панели управления мне реализовать удалось, но хотелось бы попасть в основное меню.
Можно ли забраться со своим пунктом меню в основное меню Excel, при подключении настройки, при этом сконфигурировав меню заранее без программирования?
3. Листы надстройки не видны в Excel-е в отличие от PERSONAL.XLS, можно ли и как их отобразить ?
Да нет, я не такой шустрый, просто чуть раньше разобрался и с вами одновременно написал сообщение.
Вроде все хорошо с PERSONAL.XLS.
Но меня привлекает вариант это делать через надстройку
Пробовал делать следующее:
1. Создал обычную книгу .xls, в нее положил макросы и панели, кнопки и меню которой связаны с макросами этой книги.
2. Сохранил книгу как надстройку .xla соответственно в путь -C:\Documents and Settings\USER_1\Application Data\Microsoft\AddIns
3. Подключил надстройку к Excel-ю, \Сервис\Надстройки\My_AddIn
Все заработало, но есть вопросы...
1. Как при отключении надстройки автоматически программно удалять панель из среды Excel-я ?Если вложенная панель предназначена для использования в одной отдельно взятой рабочей книге, то при её закрытии/деактивации эту панель следует удалять.
Вложенная панель сразу "влезает" в среду Excel-я, а потом ее можно удалить только вручную.
2. Меню во вложенной панели управления мне реализовать удалось, но хотелось бы попасть в основное меню.
Можно ли забраться со своим пунктом меню в основное меню Excel, при подключении настройки, при этом сконфигурировав меню заранее без программирования?
3. Листы надстройки не видны в Excel-е в отличие от PERSONAL.XLS, можно ли и как их отобразить ?
1. Если мне не изменяет память, то при "подключении/отключении" надстройки можно использовать соответствующие события Workbook_AddinInstall() и Workbook_AddinUninstall()
IMHO : В связи с тем, что все стандартные панели инструментов довольно легко вернуть в первоначальное состояние, я бы использовал события Auto_Open() или Workbook_Open()
2. Как правило это осуществляют именно программно, что касается самой возможности подобного действа, то в этом направлении я никогда не копал, так что подождём других участников форума.
3. Можно, для этого перейдите в модуль ThisWorkbook(ЭтаКнига) и меню Вид (View) выберите команду Окно свойств (F4) (Properties Window) найдите свойство IsAddin и установите его значение = False
Примечание : Надстройки, в том числе и собственные можно "хранить" в любой папке, не обязательно \AddIns\ А свойство IsAddin доступно не только в надстройках, но и в любой другой рабочей книге.
IMHO : В связи с тем, что все стандартные панели инструментов довольно легко вернуть в первоначальное состояние, я бы использовал события Auto_Open() или Workbook_Open()
2. Как правило это осуществляют именно программно, что касается самой возможности подобного действа, то в этом направлении я никогда не копал, так что подождём других участников форума.
3. Можно, для этого перейдите в модуль ThisWorkbook(ЭтаКнига) и меню Вид (View) выберите команду Окно свойств (F4) (Properties Window) найдите свойство IsAddin и установите его значение = False
Примечание : Надстройки, в том числе и собственные можно "хранить" в любой папке, не обязательно \AddIns\ А свойство IsAddin доступно не только в надстройках, но и в любой другой рабочей книге.
pashulka, спасибо
C удалением панели при отключении надстройки все получилось:
Вы были правы, для отображения и изменения кода Надстройки приходиться играть со свойством ЭтаКнига.IsAddin=True/False
Про программное создание меню у меня оказывается лежала статейка на машине...
http://www.vbstreets.ru/VBA/Articles/65843.aspx
надо поразбираться...
C удалением панели при отключении надстройки все получилось:
Код: Выделить всё
Private Sub Workbook_AddinUninstall()
On Error GoTo err1
Application.CommandBars.Item("Panel_01").Delete
Exit Sub
err1:
End Sub
Про программное создание меню у меня оказывается лежала статейка на машине...
http://www.vbstreets.ru/VBA/Articles/65843.aspx
надо поразбираться...