Виклик процедур vba з інших робочих книг excel

У минулій статті ми вже розбирали роботу з процедурами та їх виклики в межах однієї робочої книги і модулів. Для зручності використання одних і тих же процедур в різних робочих книгах Excel їх можна зібрати в одну книгу макросів і надалі звертатися до неї викликаючи ці процедури. Тобто книга Excel буде виступати в ролі бібліотеки процедур і функцій, які Ви розробляєте для проведення деяких розрахунків.

Як викликати процедуру з іншої книги Excel?

В арсеналі VBA Excel є два способи викликати процедуру з іншої книги:

  1. Встановити зв'язок з книгою і працювати як зі звичайним модулем;
  2. Скористатися методом Run з явною вказівкою шляху до книги.

Розглянемо перший спосіб. Створимо дві книги: library.xls і Exec_Book.xls.
У книзі library.xls створимо модуль з процедурою "Повідомлення":

Так само, задамо ім'я нашого VBA проекту, для цього в вікні Project Explorer (ctrl + R), клацніть за назвою проекту в нашій книзі Library (VBAProject (Library.xls) і у вікні властивостей (Properties Window (F4)) замініть Name на своє ім'я. Я назвав як "My_Library":

Виклик процедур vba з інших робочих книг excel

Зберігаємо, закриваємо книгу.

Виклик процедур vba з інших робочих книг excel

У вікні, клацніть по кнопці Browse і вкажіть наш файл Library.xls. Не забудьте змінити фільтр "Тип файлу" на "Microsoft Office."

У вікні References з'явиться нова зв'язок "My_Library"

Виклик процедур vba з інших робочих книг excel

Тиснемо ОК. Усе. Тепер ми можемо викликати нашу процедуру будь-яким способом, описаним в цій статті.

Зверніть увагу. Що при відкритті книги Exec_Book.xls, Library.xls автоматично відкривається.

Виклик процедур за допомогою методу Run працює тільки при відкритій робочій книзі містить процедури (в нашому випадку Library.xls). Виклик відбувається наступним чином:

тобто ми вказуємо ім'я відкритої книги і ім'я процедури яку викликаємо з цієї книги. Даний метод не вимагає створення зв'язку, але книга Library.xls повинна бути заздалегідь відкрита.