Версия для печати

Копирование модулей и форм из одной книги в другую

Мои программы для работы с Excel

 

Программа слегка специфична и понадобится немногим. Она копирует выбранные компоненты VBA проекта из выбранных книг в одну книгу. При этом, если у Вас на какой-либо из выбранных книг установлен пароль на VBA проект — то программа предложить его ввести и в случае правильного пароля скопирует компоненты и продолжит работу.

Копирование компонентов VBA

Добавить файлы — выбор файла для добавления в список файлов, выбранные компоненты которых будут копироваться.

Удалить выбранные — предварительно выбираете из списка файлы(отмечаете их галочкой). Все отмеченные файлы, после нажатия этой кнопки будут удалены из списка. Сами файлы не удаляются.

Очистить все — удаляет из списка все файлы. Ничего отмечать не надо. Сами файлы не удаляются.

Как использовать:

  1. Выбираете файлы в список «Из каких файлов добавить».
  2. Выбираете файл, в который все это копировать(«В какой файл копировать»).
  3. Выбираете компоненты для копирования: Стандартные модули, Модули класса или Пользовательские формы.

Сюда не включены компоненты классов ЭтаКнига(ThisWorkbook) и Листов(Worksheets), т.к. при копировании они будут скопированы либо как модули классов, либо в модули аналогичных листов. Т.к. ни первый ни второй вариант не показались мне практичным — я решил исключить эти компоненты из списка. Есть мысли как это сделать — но это может быть появиться в следующей версии программы. Если у кого-то есть какие-то предложения по усовершенствованию — пишите на эл.адрес, указанный в программе(«О программе…»)

Если в процессе копирования, программа обнаружит, что VBA проект защищен паролем — то появиться такая форма:

Запрос пароля

Вам надо будет указать пароль к проекту, после чего программа сама впишет пароль, откроет проект и скопирует указанные компоненты.

Если Вы укажете неверный пароль, то появиться стандартное окно VBA, сообщающее о неверном пароле, а за ним сообщение программы о невозможности копирования. Эта книга будет пропущена и программа перейдет к копированию из другой книги.

Стоит обратить внимание, что при появлении формы ввода пароля начинается обратный отсчет времени(60 сек). По истечении этого времени форма закроется и запароленная книга будет пропущена и компоненты из неё не будут скопированы. Это сделано для того, чтобы если Вы запустили программу и ушли, то она смогла отработать и закрыться без Вашего участия. Если для того, чтобы вспомнить(или найти) нужный пароль Вам потребуется времени больше, чем 60 сек, то надо установить флажок — «Введу пароль позже(остановка таймера отмены)«. Отсчет будет остановлен.

Это, пожалуй, все.

Скачать программу »

  Copy_VBAProject_Components.zip (267,7 KiB, 1 527 скачиваний)

Внимание: программа распространяется бесплатно. Распространение данной программы в коммерческих целях запрещено.



Поддержать автора сайта
Поделиться ссылкой
  1. Александр
    6 Сентябрь 2011 в 13:49 | #1

    Прекрасно!
    Одна проблема!
    Я хочу обновить модуль в нескольких книгах, а программа оставляет старый модуль, новый копирует с индексом 1

  2. Александр
    6 Сентябрь 2011 в 13:52 | #2

    Если не жалко… как с помощью макроса скопировать модуль из одного файла в другой (если модуль с таким именем есть то заменить…)?

  3. Александр
    6 Сентябрь 2011 в 13:54 | #3

    PS К первому комментарию ,,, может к кнопке копировать прикрутить кнопку заменить?

Комментарий будет добавлен после проверки администратором.
Комментарии, не имеющие отношения к комментируемой статье, будут удаляться без уведомления и объяснения причин. Если есть вопрос по проблеме в Excel- добро пожаловаться на Форум