0 / 0 / 0
Регистрация: 02.02.2010
Сообщений: 24
1

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

11.02.2010, 09:00. Показов 25232. Ответов 17
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Привет, All

Я написал несколько макросов (на Экселе). Но они должны работать на другом компутере. Как бы мне их перенести туда?
Говорят, что одного файла (xls) с макросами недостаточно. Слышал, что как-то это с помощью шаблонов делают. И еще такой вопрос: на другом компутере неохота заново панель инструментов для этих макросов создавать: иконки снова рисовать, макросы им назначать и т.п. Как бы мне и панельку с собой прихватить?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.02.2010, 09:00
Ответы с готовыми решениями:

Вот есть .тхт, как переслать его на другой компутер?
Я записал необходимые ячейки с экселя в .тхт, затем научил другой эксель файл считыватьданные с...

Макрос. Выбрать отмеченные позиции и перенести на другой лист
Доброго времени суток В Книге 2 листа На листе "Общий" есть таблица состоящая из 6 столбцов...

Как перенести Range на другой лист
Public shet As Worksheet Public rng As Range Private Sub CommandButton1_Click() Set shet =...

Макрос, чтобы другой макрос распихал сам по N файлам
Может эта тема уже тут звучала, да поиск не помог... Просто проблема в том, что макрос постоянно...

17
Farhad
14.02.2010, 15:29 2
Для корректного переноса модулей, в которых содержатся макросы есть в меню Файл (в редакторе ВБ) две строчки 'Import File' и 'Export File' вот ими и пользуйся. Но задача-то у тебя какая?, разве тебе это нужно? Книга, содержащая в себе макросы, уже самодостаточна и будет на другой машине работать.
Панельки не перетаскиваются никак. Советую их генерировать (опять же макросом) при запуске книги и удалять по закрытии её. Очень корректно и уважительно по отношению к юзеру. Исходя из этого, иконки следует использовать стандартные. Всё.
0 / 0 / 0
Регистрация: 15.02.2010
Сообщений: 23
15.02.2010, 05:19 3
Однако, панельки (пользовательские, а не общие) удачно вкладываются в .xls-файлы и спокойно переносятся на другие компы. Смотри: 'Настройка'/Вложить. То же самое могу сказать и про код проги (особенно, если его писать в проект текущей книги).
0
0 / 0 / 0
Регистрация: 02.02.2010
Сообщений: 24
16.02.2010, 15:29  [ТС] 4
Да, теперь я могу 'вложить' панель макросов в проект, но как ее
оттуда вытащить?
Может, я что-то не так делаю:

Выбираю в меню 'Сервис/Настройка/Вложить';
перетаскиваю 'Макросы' на 'Панели книги';
сохраняю.

Затем, чтобы убедиться, что все работает, удаляю с панели 'Макросы' несколько кнопок. Закрываю Excel, открываю снова, загружаю файл, в который я 'вложил' панельку с макросами, а кнопки макросов на панельке те же, то есть, как перед закрытием Excel. Как их увидеть?
0
0 / 0 / 0
Регистрация: 02.02.2010
Сообщений: 24
16.02.2010, 15:54  [ТС] 5
Лана, вроде бы сам доехал:

Я сохранял (вкладывал) в книгу панель под названием 'Макросы'.
При открытии появлялась другая панель 'Макросы'.
Я появляющуюся взял и переименовал. Закрыл Excel.
Стал заново шаблон пускать - панелька сама появилась.
0
0 / 0 / 0
Регистрация: 15.02.2010
Сообщений: 23
17.02.2010, 04:46 6
Лучше создать пользовательскую панель со 'своим именем' стандартное имя МАКРОСЫ чаще запутает картину. И не забудь, что всякие изменения в стуктуре панели должны быть ПЕРЕВЛОЖЕНЫ, т.е. из меню 'Вложить' сначала из книги нужно 'Удалить' старую панель и затем еще раз 'Вложить' новое состояние панели (доже если изменения коснулись только назначенных макросов кнопкам).
0
0 / 0 / 0
Регистрация: 15.02.2010
Сообщений: 23
17.02.2010, 04:49 7
Кстати, о 'снова появлялась' при перезапуске Excel^ - а кто за собой будет ... подбирать?? Есть для таких метод Application.CommandBars('ИМЯ_ПАНЕЛИ').Delete
0
0 / 0 / 0
Регистрация: 02.02.2010
Сообщений: 24
17.02.2010, 08:50  [ТС] 8
Интересная штучка - Удаление панели. Только как бы так сделать, чтобы панель удалялась при закрытии Excel-файла или при закрытии всего Excel. Не хочется создавать и ставить на 'панель моих макросов' еще один макрос, который будет сам уничтожать панель, его же и породившую...
Нельзя ли как-то ассоциировать команду закрытия панели с действием (событием) закрытия файла Excel?
0
0 / 0 / 0
Регистрация: 02.02.2010
Сообщений: 24
17.02.2010, 09:19  [ТС] 9
Вопрос вдогонку: панель-то я удаляю макросом, а как ее заново открыть, не перезагружая Excel?
0
0 / 0 / 0
Регистрация: 15.02.2010
Сообщений: 23
17.02.2010, 12:26 10
Пример кода:
Visual Basic
1
2
3
Private Sub Workbook_BeforeClose(Cancel As Boolean)
  Application.CommandBars('ТВОЯ_ПАНЕЛЬ').Delete
End Sub
позволяет 'убирать ... за собой' как при закрытии текущей книги (где и находится вложенная ТВОЯ_ПАНЕЛЬ) так и при закрытии всего Excel-я
0
0 / 0 / 0
Регистрация: 15.02.2010
Сообщений: 23
17.02.2010, 12:37 11
Дополнение вдогонку:
панель заново откроется при загрузке .xls-файла в который она вложена
0
0 / 0 / 0
Регистрация: 02.02.2010
Сообщений: 24
17.02.2010, 13:12  [ТС] 12
Да, я так и понял. Примерно так и сделал: создал свой макрос и в нем написал всего лишь одну строку
Application.CommandBars('МОЯ_ПАНЕЛЬ').Delete
Ты пишешь, надо не просто макрос писать, а какую-то приватную функцию:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Наверное, вопрос нужно задать по-другому:
Куда нужно вставить эту функцию и как это сделать?

P.S. Закрытие файла xls не приводит к закрытию МОЕЙ_ПАНЕЛИ.
0
0 / 0 / 0
Регистрация: 15.02.2010
Сообщений: 23
21.02.2010, 05:32 13
Это НЕ 'какая-то приватная функция' а функция обработки события (перевожу - ПЕРЕД ЗАКРЫТИЕМ ДАННОЙ КНИГИ).
В окне (нужного!) проекта кликаешь на ThisWorkbook и в окне программы выбираешь нужное событие (BeforeClose)- получаешь в нужном месте нужную приватную функцию в которую вставляешь строку
Application.CommandBars('ТВОЯ_ПАНЕЛЬ').Delete
И это - ВСЕ!!!

P.S. И убирается при 'закрывании'. Проверено - мин нет.
0
0 / 0 / 0
Регистрация: 02.02.2010
Сообщений: 24
23.02.2010, 12:54  [ТС] 14
Это НЕ 'какая-то приватная функция' а функция обработки события (перевожу - ПЕРЕД ЗАКРЫТИЕМ ДАННОЙ КНИГИ).
В окне (нужного!) проекта кликаешь на ThisWorkbook и в окне программы выбираешь нужное событие (BeforeClose)- получаешь в нужном месте нужную приватную функцию в которую вставляешь строку

И все равно не ясно. Что понимается под словосочетанием 'окно программы'? Наверное, 'окно макроса' и 'окно программы' это разные вещи?
И где я должен выбирать нужное событие? Где находится менеджер событий, как его вызвать?
0
0 / 0 / 0
Регистрация: 02.02.2010
Сообщений: 24
23.02.2010, 13:22  [ТС] 15
Sorry, вопрос рано задал. Вроде бы сам ответ нашел. Кстати, я вплоть до сегодняшнего дня чисто макросы писал, в программу, события не лез. Просто надобности не было.
Если я в форуме видел какие-то программки, со всякими Sub, Private и т.п., я думал, что это что-то вроде процедур, но никак не мог понять, куда и как их вставлять.
Если кому-то интересно с событиями возиться, опишу, как выйти на 'Программу'. Конкретнее, как перейти к событию 'Before'

Итак:
1. Можно или:
а) выбрать 'Сервис/Макрос/Редактор Visual Basic';
б) перейти в окно редактирования макросов (если оно открыто);
в) нажать Alt+F11.
2. Открыть 'Окно проекта'(если оно не открыто):
а) Вид/Окно проекта
б) Ctrl+R
3. В 'Окне проекта' встать на строку 'ThisWorkbook'
4. Нажать на правую кнопку мыши и выбрать 'Программа'
5. На появляющемся окне сверху имеется два выпадающих меню.
Активизируем левое и выбираем в нем 'Workbook'
6. Теперь в правом окне можно выбирать необходимое событие и
работать с ним. В данном случае нужно выбрать 'BeforeClose'
0
0 / 0 / 0
Регистрация: 15.02.2010
Сообщений: 23
23.02.2010, 14:58 16
Ну дак YES!-же.

А вообще-то кроме Help-а, формуов и отрывочных сведений о VBA еще водятся книжки типа:
'Microsoft Excel 2000 Разработка приложений' Гарнаев А.Ю. 576с. БХВ-Санкт-Петербург, 2000 (цена 180р)
Могу подсказать на каком углу есть книжный магазин (www.bolero.ru) и т.д.
0
0 / 0 / 0
Регистрация: 12.10.2008
Сообщений: 8
01.03.2010, 16:46 17
Ситуация практически один-в-один. Но возникает такая проблема:
после переноса на другой компутер при нажатии кнопочки на собственной панели инструментов вылетает окошко с сообщением 'Такой файл уже запущен. Нельзя запускать два файла с одинаковым именем...' - в случае с файлом .xls, и 'Файл <Имя моего файла.xlt> не найден. Проверьте...' - в случае файла .xlt?
0
0 / 0 / 0
Регистрация: 19.10.2015
Сообщений: 10
30.11.2015, 12:36 18
У меня та же проблема - создала панель инструментов (свою, с назначенными макросами), теперь нужно сохранить ее, чтобы при открытии моего файла на других компьютерах была создана эта панель.

вы писали, что есть такая возможность через
Цитата Сообщение от S_Isa Посмотреть сообщение
Настройка'/Вложить.
но хоть убей, не могу найти эту команду в меню... это же в экселе делается, не в VB?
0
30.11.2015, 12:36
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
30.11.2015, 12:36
Помогаю со студенческими работами здесь

Как перенести диаграмму (другой объект) из Excel в Word
Как с помощью VBA перенести диаграмму (другой объект) из Excel в Word в виде картинки ? Подскажите...

Как правильно вставить один макрос в другой
Записал макрос1, который выполняет часто повторяющиеся одни и те же действия. Теперь его нужно...

Excel, как вызвать макрос из другой книги программно?
как вызвать макрос из другой книги программно?

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


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru