Программа слегка специфична. Она копирует выбранные компоненты VBA проекта из выбранных книг в одну книгу. При этом, если у Вас на какой-либо из выбранных книг установлен пароль на VBA проект - то программа предложить его ввести и в случае правильного пароля скопирует компоненты и продолжит работу.
Добавить файлы - выбор файла для добавления в список файлов, выбранные компоненты которых будут копироваться.
Удалить выбранные - предварительно выбираете из списка файлы(отмечаете их галочкой). Все отмеченные файлы, после нажатия этой кнопки будут удалены из списка. Сами файлы не удаляются.
Очистить все - удаляет из списка все файлы. Ничего отмечать не надо. Сами файлы не удаляются.
Как использовать:
- Выбираете файлы в список "Из каких файлов добавить".
- Выбираете файл, в который все это копировать("В какой файл копировать").
- Выбираете компоненты для копирования: Стандартные модули, Модули класса или Пользовательские формы.
Сюда не включены компоненты классов ЭтаКнига(ThisWorkbook) и Листов(Worksheets), т.к. при копировании они будут скопированы либо как модули классов, либо в модули аналогичных листов. Т.к. ни первый ни второй вариант не показались мне практичным - я решил исключить эти компоненты из списка. Есть мысли как это сделать - но это может быть появится в следующей версии программы. Если у кого-то есть какие-то предложения по усовершенствованию - пишите на эл.адрес, указанный в программе("О программе...")
Если в процессе копирования, программа обнаружит, что VBA проект защищен паролем - то появиться такая форма:
Вам надо будет указать пароль к проекту, после чего программа сама впишет пароль, откроет проект и скопирует указанные компоненты.
Если Вы укажете неверный пароль, то появиться стандартное окно VBA, сообщающее о неверном пароле, а за ним сообщение программы о невозможности копирования. Эта книга будет пропущена и программа перейдет к копированию из другой книги.
Стоит обратить внимание, что при появлении формы ввода пароля начинается обратный отсчет времени(60 сек). По истечении этого времени форма закроется и запароленная книга будет пропущена и компоненты из неё не будут скопированы. Это сделано для того, чтобы если Вы запустили программу и ушли, то она смогла отработать и закрыться без Вашего участия. Если для того, чтобы вспомнить(или найти) нужный пароль Вам потребуется времени больше, чем 60 сек, то надо установить флажок - "Введу пароль позже(остановка таймера отмены)". Отсчет будет остановлен.
Copy_VBAProject_Components.zip (267,7 КиБ, 5 739 скачиваний)
Внимание: программа распространяется бесплатно. Распространение данной программы в коммерческих целях запрещено.
Прекрасно!
Одна проблема!
Я хочу обновить модуль в нескольких книгах, а программа оставляет старый модуль, новый копирует с индексом 1
Если не жалко... как с помощью макроса скопировать модуль из одного файла в другой (если модуль с таким именем есть то заменить...)?
PS К первому комментарию ,,, может к кнопке копировать прикрутить кнопку заменить?
Здравствуйте, программа запускается, добавляю файлы, проставляю галочки. В итоге получаю сообщение "ни один компонент не скопирован". Офис 2007 под ХР. Никаких паролей нет.
Виталий, а где расположены коды? Программа выдает подобное предупреждение, если действительно ничего не скопировано. Возможно все коды расположены в модулях листов и книг.
ОС: 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".
---------------------------
ОК
---------------------------
В чём проблема??... ;-//
----------------------
Спасибо.
Проблема в том, что нет доступа. Не хватает прав пользователя даже на чтение рееста. Что может помочь:
1 Вариант:
Заходите в панель управления->Учетные записи пользователей->Изменение параметров контроля учетных записей. Устанавливаете ползунок в самый низ(Никогда не уведомлять). Перезагружаете ПК.
Если это не помогает - 2 Вариант:
1. Войдите в Windows 7, используя учетную запись с административными привилегиями, и откройте редактор реестра (Windows + R-> введите regedit->ОK).
2. Раскройте ветвь HKEY_CURRENT_USER\Software\Microsoft\Office\14.0\Excel\Security\.
3. Щелкните по этомй папке правой кнопкой мыши и выберите Разрешения.
4. Выберите свою учетную запись и убедитесь, что установлены флажки Полный доступ и Чтение. Если не установлены - проставьте и сохраните параметры.
После этого лучше сначала перезагрузить ПК.
Добрый день.
Вы писали в комментариях
..."20 Апрель 2014 в 13:44 | #8 Ответить | Цитата
Мила, я бы советовал пройти по ссылке из См.также. Есть там такая: Что такое модуль? Какие бывают модули? Потом скачать пример к статье и посмотреть где там коды и как записаны..."
Где здесь пример к статье???
В VBAproject я зашла, код скопировала, вставила и дальше застряла)). Прощу прощения за свою экселевскую безграмотность, но имею большое желание научиться некоторым премудростям! Спасибо!
вирус в файле авира нашла
Да, некоторые антивирусы считают некоторые коды VBA вирусами(по сути код VBA это макровирус)