Корисність для програміста VBA

Якщо ви вимовляєте слово «макрос» з жахом і наголосом на другому складі, а фраза «Visual Basic for Applications» звучить для вас як заклинання, то ця стаття не для вас. У всякому разі, поки 🙂

Якщо у вас є хоча б деякий досвід програмування макросів на VBA в Excel, і ви не плануєте зупинятися, то добірка корисних надбудов і програм, наведена нижче, повинна бути вам (хоча б частково) корисною.

MZ-Tools – «швейцарський ніж» для програміста

Після встановлення в редакторі VBE в меню інструменти з’явиться підменю MZ-Інструменти і нова панель інструментів для швидкого доступу до тих же функцій:

Корисність для програміста VBA

Він багато чого вміє. З найцінніших, як на мене:

  • Автоматично додавати «порожню рибу» для створення процедур, функцій, обробників подій і помилок із правильним іменуванням змінних відповідно до угорської системи.
  • Скопіюйте елементи керування у форми користувача разом із їхнім кодом.
  • Робіть закладки (Вибране) для процедур і швидко переходьте до них у великому проекті.
  • Розділіть довгі рядки коду на кілька та зберіть назад (розділіть та об’єднайте рядки).
  • Видача детальної статистики по проекту (кількість рядків коду, процедур, елементів на формах і т.д.)
  • Перевірте проект на наявність невикористаних змінних і процедур (Переглянути джерело)
  • Створіть власну базу шаблонів коду (Code Templates) для типових випадків і швидко вставте їх у нові макроси пізніше.
  • Автоматично створюйте довгий і страшний рядок для підключення до зовнішніх джерел даних через ADO.
  • Додайте гарячі клавіші до будь-якої функції з надбудови.

Однозначний must have для програміста будь-якого рівня. Якщо у вас остання версія Office, то обов'язково завантажте останню версію MZ-Tools 3.00.1218 від 1 березня, тому що. виправлено помилку при роботі з Excel 2013.  

посилання на скачування MZ-Інструменти

Smart Indenter – автоматичний відступ у коді

Він добре виконує одну просту, але дуже необхідну операцію – автоматично робить відступи табуляції в коді VBA, чітко виділяючи вкладені цикли, перевірки умов тощо.

Корисність для програміста VBA

Дуже зручно призначити цю дію будь-якій зручній комбінації клавіш у розділі Параметри відступів і зробити це одним дотиком.

На жаль, автор програми відмовився від неї в 2005 році (чому, Карл!?) і остання версія на сайті для Excel 97-2003. Однак програма досить добре працює з новими версіями. Єдине застереження: якщо у вас Excel 2013, то перед встановленням Smart Indenter необхідно спочатку встановити останню версію MZ-Tools, т.к. містить динамічну бібліотеку, необхідну для роботи Indenter.

посилання на скачування Розумний індентор

VBE Tools – мікроналаштування елементів у формах

Вирівнювання елементів керування (кнопок, полів введення, текстових написів тощо) на складній формі може бути проблемою. Стандартна прив'язка до сітки редактора через меню Інструменти — Параметри — Загальні — Вирівняти елементи керування відповідно до сітки іноді це не дуже допомагає, а навіть починає заважати, особливо якщо потрібно трохи посунути, наприклад, кнопку. Допоможе в цьому надбудова VBE Tools, яка після інсталяції відображає просту панель, де можна точно налаштувати розмір і положення на формі для вибраного елемента:

Корисність для програміста VBA

Зміщення позиції також можна виконати за допомогою Alt+стрілки, а зміну розміру — за допомогою Shift+Alt+стрілки та Ctrl+Alt+стрілки.

Крім того, клацнувши елемент правою кнопкою миші, ви можете негайно перейменувати його разом із кодом.

посилання на скачування Інструменти VBE

VBA Diff – пошук відмінностей у коді

Цей інструмент, ймовірно, буде більш корисним для професійних програмістів VBA під час створення великих і складних проектів або спільної розробки. Його основна функція — порівняти два проекти та візуально відобразити різницю в коді між ними:

Корисність для програміста VBA

Є 30-денний безкоштовний період, а потім аддон зажадає за нього 39 фунтів стерлінгів (близько 3.5 тисяч рублів за поточним курсом).

Відверто кажучи, вона стала в нагоді в моєму житті всього 3-4 рази на надвеликих проектах, але потім заощадила кілька днів і купу нервових клітин 🙂 Ну і завжди, звичайно, є безкоштовна альтернатива: експортувати код у текстовий файл (клацніть правою кнопкою миші по модулю – Експорт) і порівняйте їх пізніше в Microsoft Word за допомогою команди Огляд – порівняння документів, але за допомогою VBA Diff це на порядок зручніше.

посилання на скачування VBA Diff

Moqups і Wireframe Sketcher – прототипування інтерфейсу

При створенні складних інтерфейсів взаємодії з користувачем дуже зручно заздалегідь спроектувати приблизний вигляд діалогових вікон, тобто виконати макетування. Насправді це виявляється набагато простіше, ніж потім переробляти готові форми та їх код. Пам’ятаю, якось в одному з проектів замовник попросив зробити «меню», тобто «вкладки». Півдня роботи на вітер 🙁

Для цих завдань існує величезна кількість платних і безкоштовних програм різного рівня складності та потужності. Перепробував близько десятка таких програм і сервісів, останнім часом користуюся найчастіше Мокери:

Корисність для програміста VBA

Це онлайн-редактор, який:

  • Не потребує встановлення окремих програм. Ви завжди можете приїхати в офіс клієнта і відкрити-показати-відкоригувати створений інтерфейс прямо на сайті.
  • Містить усі основні елементи діалогових вікон (написи, кнопки, списки тощо) у версіях для Windows і Mac.
  • Дозволяє експортувати створений інтерфейс у форматах PNG або PDF або надіслати клієнту посилання для перегляду онлайн.
  • Фактично безкоштовно. Є обмеження на кількість графічних елементів, але мені ніколи не вдавалося їх вийти. Якщо у вас не вистачає місця або ви хочете зберігати кілька великих проектів одночасно, ви завжди можете перейти на преміум-версію за 99 доларів на рік.

Загалом, для завдань розробника на VBA – більш ніж достатньо, я думаю.

Якщо комусь принципово потрібен офлайн варіант (працювати без інтернету на березі моря, наприклад), то рекомендую Каркасний ескізник:

Корисність для програміста VBA

Після безкоштовного демо-періоду протягом 2 тижнів він попросить вас купити за ті ж 99 доларів.

Посилання на Мокери

посилання на скачування Каркасний ескізник

Invisible Basic – обфускатор коду

На жаль, неможливо надійно заблокувати вихідний код ваших макросів за допомогою пароля в Microsoft Excel. Однак існує цілий клас програм, які називаються обфускатори (З англ. затуманювати – заплутати, заплутати), які змінюють вигляд коду VBA таким чином, що його буде надзвичайно важко прочитати та зрозуміти, а саме:

  • імена змінних, процедур і функцій замінюються довгими безглуздими наборами символів або, навпаки, короткими буквеними незрозумілими позначеннями
  • відступи візуальної табуляції видалено
  • видаляються або, навпаки, випадково розміщуються розриви рядків тощо.

Чесно кажучи, я не прихильник використання цих методів. Зокрема, з PLEX я вирішив, що краще давати покупцям повної версії відкритий, зрозумілий і прокоментований вихідний код – мені це здається правильніше. Тим не менш, у моїх колег-програмістів неодноразово були випадки, коли така програма була б дуже корисна (програміст зробив роботу, але клієнт не заплатив і т.д.) Так що якщо вона вам потрібна, знайте, де її взяти. «Ми мирні люди, але наш бронепоїзд…» і все таке.

Завантажити Invisible Basic

Code Cleaner – очищення коду

У процесі роботи над проектом (особливо, якщо він великий і тривалий) в модулях і формах коду починає накопичуватися «сміття» – уривки службової інформації редактора VBE, які можуть призвести до неочікуваних і небажаних збоїв. Утиліта Очищувач коду очищає цей бруд простим, але надійним способом: експортує код із модулів у текстові файли, а потім чисто імпортує його назад. Дуже рекомендую при роботі над великими проектами періодично проводити таку «чистку».

посилання на скачування Очищувач коду

Редактор XML стрічки

Якщо ви хочете створити власну вкладку з красивими кнопками на стрічці Excel для запуску ваших макросів, то вам не обійтися без інтерфейсного редактора файлів XML. Безумовно, найбільш зручною і потужною на сьогоднішній день в цьому плані є вітчизняна програма. Редактор XML стрічкистворив Максим Новіков.

Корисність для програміста VBA

Абсолютно чудове програмне забезпечення, яке:

  • дозволить вам легко додавати власні вкладки, кнопки, розкривні списки та інші елементи нового інтерфейсу Office на стрічку
  • fully supports language
  • допомагає редагувати, відображаючи контекстні підказки
  • можна легко засвоїти на уроках
  • абсолютно безкоштовно

посилання на скачування Редактор XML стрічки

PS

Протягом багатьох років Microsoft відверто ігнорувала розробників VBA, вважаючи її, мабуть, нижчою мовою програмування. Періодично ходять чутки, що в наступній версії Office більше не буде Visual Basic або його замінить JavaScript. Нові версії Visual Studio регулярно виходять із новими перевагами, а редактор VBE застряг у 1997 році, досі не маючи змоги робити відступи в коді стандартними інструментами.

Насправді тисячі людей економлять години й дні завдяки програмістам VBA, які створюють макроси для автоматизації повсякденної обробки офісних даних. Той, хто бачив, як макрос в 10 рядках коду відправляє файли 200 клієнтам за півхвилини, замінюючи три години дурної роботи, той мене зрозуміє 🙂

І багато іншого. 

Усі перераховані вище програми є виключно моїм особистим вибором і особистими рекомендаціями на основі особистого досвіду. Ніхто з авторів не просив у мене реклами і не платив за неї (і я б не брався, з принципу). Якщо вам є що додати до наведеного вище списку – ласкаво просимо в коментарі, вдячне людство не залишиться в боргу.

 

залишити коментар