Как перенести макросы excel на другой компьютер
Перейти к содержимому

Как перенести макросы excel на другой компьютер

  • автор:

Как перенести макросы excel на другой компьютер

Как перенести настройки Excel на другой компьютер?

Alex_ST:
Ситуация, наверное, типичная…
Я юзаю два компа: один на работе (под ХРюшей), другой дома (Виста). На обоих компах Excel-2003.
Большую часть макросов в Personal.xls и доработок панелей управления (наделал много своих кнопочек для вызова макросов, своих менюшек со своими кнопочками, своих кнопочек в стандартных менюшках. ) делаю на работе 😉
Хочется и дома иметь такой же настроенный «под себя» Excel, как и на работе.
Но к сожалению просто тупо подложить домашнему Ёкселю файл Excel11.xlb вместе с папочкой XLSTART нельзя, т.к. не совпадают пути к макросам, лежащим в Personal.xls
А сидеть и просто в режиме настройки перепрописывать макросы, прикреплённые к каждой кнопочке жутко лень.
The_Prist на Планете в топике «Перенос макросов на другой комп с изменением путей доступа к ним» предлагал делать это макросом, который пройдётся циклом по всем кнопочкам менюшек и исправит у них путь, прописанный в OnAction:
Код:

Sub Replace_Personal() ‘ перенос макросов и настройки видимых панелей на другой компьютер
Const NewPath$ = «‘C:\Users\MyNewUserName\AppData\Roaming\Microsoft\Excel\XLSTART\PERSONAL.XLS’!» ‘ если переносить на Vista
‘Const NewPath$ = «‘C:\Documents and Settings\MyNewUserName\Application Data\Microsoft\Excel\XLSTART\PERSONAL.XLS’!» ‘ если переносить на XP
Dim cmdBar As Object, iBtn As Object, sPath$
For Each cmdBar In Application.CommandBars
If cmdBar.Visible Then
For Each iBtn In cmdBar.Controls
On Error Resume Next
sPath = iBtn.OnAction
If Len(sPath) > 0 Then
If InStr(1, sPath, «‘!», 1) > 0 Then iBtn.OnAction = NewPath & Mid(sPath, InStr(1, sPath, «!», 1) + 1)
End If
Next iBtn
End If
Next cmdBar
End Sub

Пробовал. Работает, но не полностью : переписывает пути только у тех кнопочек, которые видны на экране, а у тех кнопочек, которые не видны — нет.
Попробовал убрать Код:

If cmdBar.Visible Then …
— почему-то не помогло 🙁
Всё равно не правятся пути у кнопочек, спрятанных в недрах выпадающих менюшек.
У кого-нибудь есть идеи, как «подпилить»?

Дмитрий Щербаков(The_Prist):
Что ж, Алексей, отвечу и здесь 🙂 Возможно, надо еще по вып.меню шариться. Но необходимо знать, где именно они расположены. Если это меню создано программно(как и кнопки), то надо еще делать проверку:

For Each cmdBar In Application.CommandBars
If cmdBar.Visible Then
For Each iBtn In cmdBar.Controls
If iBtn.Type <> 1 Then
For Each oSubBtn In iBtn
sPath = iBtn.OnAction
If Len(sPath) > 0 Then
If InStr(1, sPath, «‘!», 1) > 0 Then iBtn.OnAction = NewPath & Mid(sPath, InStr(1, sPath, «!», 1) + 1)
End If
Next oSubBtn
End If
sPath = iBtn.OnAction
If Len(sPath) > 0 Then
If InStr(1, sPath, «‘!», 1) > 0 Then iBtn.OnAction = NewPath & Mid(sPath, InStr(1, sPath, «!», 1) + 1)
End If
Next iBtn
End If
Next cmdBar

Это лишь примерный код, который не тестировался. Но двигаться надо именно в этом направлении. ну и для оптимизации неплохо бы в таком случае код замены путей к макросам вынести в отдельную функцию.

Alex_ST:
Спасибо, Дмитрий.
Будем попробовать.
А что касается программно создаваемых меню и кнопок, то я не настолько крут чтобы это широко применять. Поэтому все кнопочки и менюшки у меня созданы вручную.

Alex_ST:
Не идёт.
Затыкается на строке
Код:

For Each oSubBtn In iBtn
Говорит, что объект не поддерживает данное свойство или метод.
Решил, что вы ошиблись в значении параметра при проверке того, что это субменю. Посмотрел в справке, увидал, что могут быть 3 значения MsoBarType:
msoBarTypeNormal == 0
msoBarTypeMenuBar == 1
msoBarTypePopup == 2

Заменил в коде:
Код:

If iBtn.Type = 1 Then ‘ msoBarTypeMenuBar
Всё равно затыкается в коде на том же месте — Код:

For Each oSubBtn In iBtn

Дмитрий Щербаков(The_Prist):
На самом деле правильней вообще так:
If iBtn.Type > 2 Then
т.к. 3 и 4 это типы с подменю. Спотыкаеться может потому, что у Вас не совсем так созданы кнопки. Я говорил про созданные через надстройки. Предложил как вариант. Возможно у созданных вручную конструктором меню немного другие свойства. Надо будет завтра поэкспериментировать. Правда только в том случае, если Алексей раскроет секрет того, как именно пошагово создаются эти выпадающие меню(и создаются ли).

Создание и сохранение всех макросов в одной книге

Когда вы впервые создаете макрос в книге, он работает только в ней. А если вам нужно использовать макрос в других книгах? Чтобы макросы были доступны при каждом запуске Excel, создайте их в книге с именем Personal.xlsb. Это скрытая книга, хранящейся на компьютере, которая открывается в фоновом режиме при каждом открытии Excel.

Макросы и средства VBA находятся на вкладке Разработчик, которая по умолчанию скрыта, поэтому сначала нужно включить ее. Дополнительные сведения см. в статье Отображение вкладки «Разработчик».

Вкладка

Теперь создайте макрос. Мы запидем макрос, который ничего не делает, но создаст книгу «Личный макрос».

Дополнительные сведения о создании макросов см. в разделе Краткое руководство. Создание макроса.

    Перейдите на вкладку Разработчик и нажмите кнопку Записать макрос.

Чтобы просмотреть созданный макрос, выполните следующие действия:

  1. Перейдите в раздел Разработчик >Visual Basic, чтобы запустить Редактор Visual Basic (VBE), где хранятся макросы.
  2. Вы можете найти книгу «Личный макрос» в области Проект Обозреватель слева. Если вы не видите его, перейдите в раздел Просмотр> project Обозреватель.
  3. Дважды щелкните папку Проект VBA (PERSONAL.xlsb) >Modules >Module1, и вы найдете пустой макрос1, который вы записали. Вы можете удалить его или сохранить, чтобы добавить код позже.

Примечание: При записи макроса в новый экземпляр Excel VBA автоматически создаст папку Module и увеличит ее номер. Таким образом, если у вас уже есть модули Module1 и Module2, VBA создаст Module3. Вы можете переименовать модули в окне Свойства под Обозреватель Project, чтобы они лучше отражали действия макросов в них.

Перемещение макросов на другой компьютер

Файл Personal.xlsb хранится в папке с именем XLSTART. Если вы хотите поделиться своими макросами с другим пользователем, вы можете скопировать их в папку XLSTART на других компьютерах или скопировать некоторые или все макросы в файл Personal.xlsb на других компьютерах. Чтобы найти его, можно выполнить поиск по запросу XLSTART в Windows Обозреватель.

Если у вас есть один или несколько макросов, которыми вы хотите поделиться с другими пользователями, вы можете отправить им книгу, содержащую их. Можно также предоставить доступ к книге на общем сетевом диске или в библиотеке служб SharePoint Services.

Дополнительные сведения о копировании макросов из одной книги в другую см. в статье Копирование модуля макроса в другую книгу.

Убедитесь, что на ленте отображается вкладка Разработчик . По умолчанию вкладка Разработчик не отображается, поэтому выполните следующие действия.

  1. Перейдите в раздел Параметры > Excel. >лента & панели инструментов.
  2. В категории Настроить ленту в списке Основные вкладки установите флажок Разработчик, а затем нажмите кнопку Сохранить.

Теперь создайте макрос. Мы запидем макрос, который ничего не делает, но создаст книгу «Личный макрос».

Дополнительные сведения о создании макросов см. в разделе Краткое руководство. Создание макроса.

  1. Перейдите на вкладку Разработчик и нажмите кнопку Записать макрос.
  2. В диалоговом окне Запись макроса не нужно вводить имя макроса в поле Имя макроса . Вы можете принять имя, присвоенное excel, например Macro1, так как это просто временный макрос. Когда вы начнете создавать собственные макросы, вы захотите присвоить им описательные имена, чтобы вы знали, что они делают.
  3. В поле Сохранить макрос в выберите Личная книга макросов >ОК. Это самый важный шаг, так как если у вас еще нет личной книги макросов, Excel создаст ее для вас.
  4. Щелкните Разработчик >остановить запись, и Excel создаст книгу личных макросов.
  5. При закрытии книги вам будет предложено сохранить книгу и книгу «Личный макрос».

Чтобы просмотреть созданный макрос, выполните следующие действия:

  1. Щелкните Разработчик >Visual Basic, чтобы запустить Редактор Visual Basic (VBE), в котором хранятся макросы.
  2. Вы можете найти книгу «Личный макрос» в области Проект Обозреватель слева. Если вы не видите его, перейдите в раздел Просмотр> project Обозреватель.
  3. Дважды щелкните папку Проект VBA (PERSONAL.xlsb) >Modules >Module1, и вы найдете пустой макрос1, который вы записали. Вы можете удалить его или сохранить, чтобы добавить код позже.

Примечание: При записи макроса в новый экземпляр Excel VBA автоматически создаст папку Module и увеличит ее номер. Таким образом, если у вас уже есть модули Module1 и Module2, VBA создаст Module3. Вы можете переименовать модули в окне Свойства под Обозреватель Project, чтобы они лучше отражали действия макросов в них.

Перемещение макросов на другой компьютер

Файл Personal.xlsb хранится в папке запуска системы. Если вы хотите поделиться своими макросами с другим пользователем, вы можете скопировать Personal.xlsb в папку запуска на других компьютерах или скопировать некоторые или все макросы в файл Personal.xlsb на других компьютерах. В Finder выберите Go, а затем, удерживая нажатой клавишу Option , выберите Библиотека. В области Библиотека перейдите к: Группировать контейнеры > xyz. Office (где xyz — текстовая строка, например «UBF8T346G9») > пользовательское содержимое > запуска > Excel. Вставьте файл Personal.xlsb в папку Excel.

Если у вас есть один или несколько макросов, которыми вы хотите поделиться с другими пользователями, вы можете отправить им книгу, содержащую их. Можно также предоставить доступ к книге на общем сетевом диске или в библиотеке служб SharePoint Services.

Дополнительные сведения о копировании макросов из одной книги в другую см. в статье Копирование модуля макроса в другую книгу.

Дополнительные сведения

Вы всегда можете задать вопрос эксперту в Excel Tech Community или получить поддержку в сообществах.

Как скопировать макрос Excel на другой компьютер

простой, интуитивно понятный «детский» способ
— флешка вставляется в старый ноутбук
— файл с макросом копируется и переносится на флешку
— вынимаем флешку и вставляем в другое уст-во
— нужный файл переносим на новый компьютер

Остальные ответы

Заходим в редактор визуал бейсика слева выбираем ВБА Проект Персонал — модули — модуль1, 2,3 и так далее, затем щелкаем правой кнопкой мыши — экспорт файла сохраняем
добавляется аналогично (импорт файла)

Как перенести макросы excel на другой компьютер

Ситуация, наверное, типичная…
Я юзаю два компа: один на работе (под ХРюшей), другой дома (Виста). На обоих компах Excel-2003.
Большую часть макросов в Personal.xls и доработок панелей управления делаю на работе
За несколько лет наделал много своих кнопочек для вызова макросов, своих менюшек со своими кнопочками, своих кнопочек в стандартных менюшках.
Хочется и дома иметь такой же настроенный «под себя» Excel, как и на работе.
Но к сожалению просто тупо подложить домашнему Ёкселю файл Excel11.xlb вместе с папочкой XLSTART нельзя, т.к. не совпадают пути к макросам, лежащим в Personal.xls
А сидеть и просто в режиме настройки перепрописывать макросы, прикреплённые к каждой кнопочке жутко лень.
Вот я и начал на разных форумах мучить знатоков вопросом «Как перенести настройки Excel на другой компьютер?»
После не очень продолжительных допросов уважаемый Дмитрий (The_Prist) в форуме на своём сайте доделал-таки давно «зачатый» им макрос, перепрописывающий у самодельных кнопок панелей управления все пути к макросам, лежащим в Personal.xls.
А я плоды его трудов «покрыл лачком» и оформил в отдельный файл.
Отлично работает. Очень удобно стало синхронизировать рабочий и домашний Ёксели.

Вот, посмотрите, кому интересно. Может пригодиться.

Ситуация, наверное, типичная…
Я юзаю два компа: один на работе (под ХРюшей), другой дома (Виста). На обоих компах Excel-2003.
Большую часть макросов в Personal.xls и доработок панелей управления делаю на работе
За несколько лет наделал много своих кнопочек для вызова макросов, своих менюшек со своими кнопочками, своих кнопочек в стандартных менюшках.
Хочется и дома иметь такой же настроенный «под себя» Excel, как и на работе.
Но к сожалению просто тупо подложить домашнему Ёкселю файл Excel11.xlb вместе с папочкой XLSTART нельзя, т.к. не совпадают пути к макросам, лежащим в Personal.xls
А сидеть и просто в режиме настройки перепрописывать макросы, прикреплённые к каждой кнопочке жутко лень.
Вот я и начал на разных форумах мучить знатоков вопросом «Как перенести настройки Excel на другой компьютер?»
После не очень продолжительных допросов уважаемый Дмитрий (The_Prist) в форуме на своём сайте доделал-таки давно «зачатый» им макрос, перепрописывающий у самодельных кнопок панелей управления все пути к макросам, лежащим в Personal.xls.
А я плоды его трудов «покрыл лачком» и оформил в отдельный файл.
Отлично работает. Очень удобно стало синхронизировать рабочий и домашний Ёксели.

Вот, посмотрите, кому интересно. Может пригодиться. Alex_ST

К сообщению приложен файл: Replace_Persona.xls (30.5 Kb)

Сообщение Ситуация, наверное, типичная…
Я юзаю два компа: один на работе (под ХРюшей), другой дома (Виста). На обоих компах Excel-2003.
Большую часть макросов в Personal.xls и доработок панелей управления делаю на работе
За несколько лет наделал много своих кнопочек для вызова макросов, своих менюшек со своими кнопочками, своих кнопочек в стандартных менюшках.
Хочется и дома иметь такой же настроенный «под себя» Excel, как и на работе.
Но к сожалению просто тупо подложить домашнему Ёкселю файл Excel11.xlb вместе с папочкой XLSTART нельзя, т.к. не совпадают пути к макросам, лежащим в Personal.xls
А сидеть и просто в режиме настройки перепрописывать макросы, прикреплённые к каждой кнопочке жутко лень.
Вот я и начал на разных форумах мучить знатоков вопросом «Как перенести настройки Excel на другой компьютер?»
После не очень продолжительных допросов уважаемый Дмитрий (The_Prist) в форуме на своём сайте доделал-таки давно «зачатый» им макрос, перепрописывающий у самодельных кнопок панелей управления все пути к макросам, лежащим в Personal.xls.
А я плоды его трудов «покрыл лачком» и оформил в отдельный файл.
Отлично работает. Очень удобно стало синхронизировать рабочий и домашний Ёксели.

Вот, посмотрите, кому интересно. Может пригодиться. Автор — Alex_ST
Дата добавления — 15.05.2011 в 22:57

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *