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

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

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

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

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

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

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

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

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

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

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

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

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


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

  Copy_VBAProject_Components.zip (267,7 КиБ, 5 728 скачиваний)

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

10 комментариев

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

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

  3. Здравствуйте, программа запускается, добавляю файлы, проставляю галочки. В итоге получаю сообщение "ни один компонент не скопирован". Офис 2007 под ХР. Никаких паролей нет.

  4. ОС: win7*32Pro, права админа;
    Офис: 2010*32;
    -----------------
    Выбрал файл-источник - Tips_Macro_OpenWord.xls (и свои файлы пробовал),
    выбрал куда копировать - 111.xls,
    клик по [Копировать]...
    Получаю окошко:
    ---------------------------
    CopyVBPrToAnoverBook
    ---------------------------
    Run-time error '-2147024894 (80070002)':

    Не удается открыть для чтения раздел реестра "HKEY_CURRENT_USER\Software\Microsoft\Office\14.0\Excel\Security\AccessVBOM".
    ---------------------------
    ОК
    ---------------------------

    В чём проблема??... ;-//
    ----------------------
    Спасибо.

  5. Проблема в том, что нет доступа. Не хватает прав пользователя даже на чтение рееста. Что может помочь:
    1 Вариант:
    Заходите в панель управления->Учетные записи пользователей->Изменение параметров контроля учетных записей. Устанавливаете ползунок в самый низ(Никогда не уведомлять). Перезагружаете ПК.
    Если это не помогает - 2 Вариант:
    1. Войдите в Windows 7, используя учетную запись с административными привилегиями, и откройте редактор реестра (Windows + R-> введите regedit->ОK).
    2. Раскройте ветвь HKEY_CURRENT_USER\Software\Microsoft\Office\14.0\Excel\Security\.
    3. Щелкните по этомй папке правой кнопкой мыши и выберите Разрешения.
    4. Выберите свою учетную запись и убедитесь, что установлены флажки Полный доступ и Чтение. Если не установлены - проставьте и сохраните параметры.
    После этого лучше сначала перезагрузить ПК.

  6. Добрый день.
    Вы писали в комментариях
    ..."20 Апрель 2014 в 13:44 | #8 Ответить | Цитата
    Мила, я бы советовал пройти по ссылке из См.также. Есть там такая: Что такое модуль? Какие бывают модули? Потом скачать пример к статье и посмотреть где там коды и как записаны..."
    Где здесь пример к статье???
    В VBAproject я зашла, код скопировала, вставила и дальше застряла)). Прощу прощения за свою экселевскую безграмотность, но имею большое желание научиться некоторым премудростям! Спасибо!

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

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.