Полезности для VBA программиста
Если вы произносите слово "макрОсы" с придыханием от ужаса и ударением на втором слоге, а фраза "Visual Basic for Applications" для вас звучит как заклинание, то эта статья - не для вас. Во всяком случае - пока :)
Если же у вас за плечами есть хоть какой-то опыт программирования макросов на VBA в Excel, и вы не планируете останавливаться, то приведенная ниже подборка полезных надстроек и программ должна вам (хотя бы частично) пригодиться.
MZ-Tools - "швейцарский нож" для программиста
После установки в редакторе VBE в меню Tools появится подменю MZ-Tools и новая панель инструментов для быстрого вызова тех же функций:
Умеет очень и очень много. Из самого ценного, на мой взгляд:
- Автоматически добавлять "рыбы-заготовки" для создания процедур, функций, обработчиков событий и ошибок с правильным наименованием переменных по венгерской системе.
- Копировать элементы управления на пользовательских формах вместе с их кодом.
- Делать закладки (Favorites) на процедуры и быстро к ним переходить в большом проекте.
- Разбивать длинные строки кода на несколько и собирать обратно (split и combine lines).
- Выдавать подробную статистику по проекту (кол-во строк кода, процедур, элементов на формах и т.д.)
- Проверять проект на наличие неиспользуемых переменных и процедур (Review Source)
- Создать свою базу заготовок кода (Code Templates) для типичных случаев и быстро вставлять их потом в новые макросы.
- Автоматически создавать длинную и страшную строку для подключения к внешним источникам данных по ADO.
- Вешать горячие клавиши на любую функцию из надстройки.
Однозначный мастхэв для программиста любого уровня. Если у вас последняя версия Office, то скачивайте обязательно свежую версию MZ-Tools 3.00.1218 от 1 марта, т.к. в ней исправлен баг, при работе с Excel 2013.
Smart Indenter - автоматическая расстановка отступов в коде
Хорошо делает одну простую, но очень нужную операцию - автоматически расставляет отступы табуляции в коде VBA, наглядно выделяя вложенные циклы, проверки условий и т.д.
Очень удобно повесить это действие на любое удобное сочетание клавиш в разделе Indenting Options и делать в одно касание.
К сожалению, автор программы забросил ее в 2005 году (почему, Карл!?) и последняя версия на сайте предназначена для Excel 97-2003. Тем не менее, программа вполне успешно работает и с более новыми версиями. Единственный нюанс: если у вас Excel 2013, то перед установкой Smart Indenter нужно установить сначала MZ-Tools последней версии, т.к. она содержит нужную для работы Indenter'а динамическую библиотеку.
Ссылка на скачивание Smart Indenter
VBE Tools - микроподстройка элементов в формах
Выравнивание элементов управления (кнопок, полей ввода, текстовых надписей и т.д.) на сложной форме может быть весьма мучительным процессом. Стандартная привязка к сетке редактора через меню Tools - Options - General - Align Controls to Grid иногда не очень помогает и даже начинает мешать, особенно если нужно сдвинуть, например, кнопку совсем на чуть-чуть. В этом деле поможет надстройка VBE Tools, которая после установки отобразить простую панельку, где можно для выбранного элемента произвести микроподстройку размеров и положения на форме:
Сдвиг положения также можно будет делать с помощью сочетаний клавиш Alt+стрелки, а изменение размеров с помощью Shift+Alt+стрелки и Ctrl+Alt+стрелки.
Также по щелчку правой кнопки мыши по элементу можно его переименовать сразу вместе с кодом.
Ссылка на скачивание VBE Tools
VBA Diff - поиск отличий в коде
Этот инструмент пригодится, пожалуй, больше профессиональным программистам на VBA при создании больших и сложных проектов или совместной разработке. Его основная функция - сравнивать два проекта и наглядно отображать разницу в коде между ними:
Есть 30-дневный бесплатный период, а потом надстройка попросит заплатить за нее 39 фунтов (около 3.5 тыс.руб по текущему курсу).
Говоря откровенно, мне она пригодилась в этой жизни всего раза 3-4 на супербольших проектах, но сэкономила мне тогда несколько дней и много-много нервных клеток :) Ну и всегда есть, конечно, бесплатная альтернатива: экспортировать код в текстовый файл (правой кнопкой мыши по модулю - Export) и сравнивать их потом в Microsoft Word с помощью команды Рецензирование - Сравнить документы, но с помощью VBA Diff это на порядок удобнее.
Moqups и Wireframe Sketcher - прототипирование интерфейса
При создании сложных интерфейсов для взаимодействия с пользователем очень удобно бывает заранее спроектировать примерный внешний вид диалоговых окон, т.е. выполнить прототипирование. По факту, это оказывается гораздо проще, чем переделывать потом готовые формы и их код. Помню, как-то раз в одном из проектов заказчик просил сделать "меню", имея ввиду "вкладки". Полдня работы псу под хвост :(
Существует огромное количество платных и бесплатных программ разного уровня сложности и мощи для этих задач. Я таких программ и сервисов перепробовал с десяток, и в последнее время чаще всего использую Moqups:
Это онлайновый редактор, который:
- Не требует установки отдельных программ. Всегда можно приехать к клиенту в офис и прямо на сайте открыть-показать-подправить созданный интерфейс.
- Содержит все основные элементы диалоговых окон (надписи, кнопки, вып.списки и т.д.) в вариантах для Windows и Mac.
- Позволяет экспортировать созданный интерфейс в PNG или PDF форматах или отправить клиенту ссылочку для просмотра онлайн.
- Фактически бесплатен. Есть ограничения на количество графических элементов, но мне еще ни разу не удалось за них выйти. Если не будет хватать места или захочется хранить сразу несколько больших проектов, то всегда можно перейти на премиум-версию за 99$ в год.
В общем и целом, для задач разработчика на VBA - более, чем достаточно, я считаю.
Если для кого принципиально нужен офлайновый вариант (для работы без доступа к интернету на берегу моря, например), то рекомендую Wireframe Sketcher:
После бесплатного демо-периода на 2 недели попросит купить за те же 99$.
Ссылка на скачивание Wireframe Sketcher
Invisible Basic - обфускатор кода
Надежно закрыть исходный код ваших макросов паролем в Microsoft Excel, к сожалению, невозможно. Однако, существует целый класс программ, называемых обфускаторами (от англ. obfuscate - сбивать с толку, запутывать), которые так меняют внешний вид VBA-кода, что прочитать и понять его будет крайне сложно, а именно:
- имена переменных, процедур и функций заменяются на длинные бессмысленные наборы символов или, наоборот, на короткие буквенные непонятные обозначения
- убираются наглядные отступы табуляции
- убираются или, наоборот, хаотично ставятся переносы строк и т.д.
Откровенно говоря, я не фанат использования подобных методов. В частности, с PLEX я решил, что лучше буду отдавать покупателям полной версии открытый, понятный и прокомментированный исходный код - это мне кажется более правильным. Тем не менее, у моих знакомых программистов неоднократно были случаи, когда подобная программка очень пригодилась бы (программист выполнил работу, а клиент не заплатил и т.д.) Так что если понадобится - знайте, где взять. "Мы мирные люди, но наш бронепоезд..." и все такое.
Code Cleaner - очистка кода
В процессе работы над проектом (особенно, если он большой и долгий) в модулях кода и формах начинает накапливаться "мусор" - обрывки служебной информации редактора VBE, которые могут привести к неожиданным и нежелательным глюкам. Утилита Code Cleaner чистит эту гадость простым, но надежным способом: экспортирует код из модулей в текстовые файлы, а потом импортирует его чистеньким обратно. Очень рекомендую при работе над большими проектами периодически проводить такую "уборку".
Ссылка на скачивание Code Cleaner
Ribbon XML Editor
Если для запуска ваших макросов хочется создать на ленте Excel собственную вкладку с красивыми кнопками, то вам не обойтись без редактора XML-файлов интерфейса. Однозначно, самым удобным и мощным на сегодняшний день является в этом плане отечественная программа Ribbon XML Editor, созданная Максимом Новиковым.
Совершенно замечательный софт, который:
- позволит легко добавлять на ленту собственные вкладки, кнопки, выпадающие списки и другие элементы нового интерфейса Office
- полностью поддерживает русский язык
- помогает при редактировании, отображая контекстные подсказки
- можно легко освоить по урокам
- полностью бесплатен
Ссылка на скачивание Ribbon XML Editor
P.S.
Долгие годы Microsoft упорно в лоб игнорирует разработчиков на VBA, считая его, судя по всему, неполноценным языком программирования. Периодически проскальзывают слухи, что в следующей версии Office Visual Basic уже не будет или его заменят на JavaScript. Регулярно выходят новые версии Visual Studio с новыми плюшками, а редактор VBE так и застрял в 1997 году, до сих пор не умея стандартными средствами расставить отступы в коде.
В реальности же, тысячи людей экономят часы и дни, благодаря программистам на VBA, создающим макросы для автоматизации повседневных рутинных задач офисной обработки данных. Кто видел, как макрос в 10 строк кода делает за полминуты рассылку файлов по 200 клиентам, заменяя три часа тупой работы - тот меня поймет :)
И еще.
Все вышеперечисленные программы - это сугубо мой личный выбор и персональная рекомендация на основе личного опыта. Никто из авторов не просил меня о рекламе и не платил за нее (а я бы и не взял, из принципа). Если у вас есть что добавить к приведенному списку - добро пожаловать в комментарии, благодарное человечество в долгу не останется.
Открыл для себя парочку классных плюшек
Буду пробовать )) Некоторые вещи архиполезные!
1) VBStyleCode - выполняет автоформатирование, автозавершение конструкций типа End If и End With (именно ради этой функции я использую этот плагин), и вообще ускоряет написание кода
Содержит множество разных возможностей (хотя я пользуюсь лишь малой частью)
Кое-то взято из «серьёзных» языков программирования, — если написать в коде n++, то VBStyleCode заменит эту запись на n = n + 1
Скачать можно здесь:
2) утилита ProtectVBA - для защиты кода VBA (при попытке доступа к макросам появится сообщение Project is unviewable)
Сайт автора, вроде, уже недоступен, скачать можно у меня:
VBStyleCode у меня, правда, так и не заработал - выдает ошибку сразу при запуске Excel
Видимо, он больше для старых версий подходит.
?
Николай, MZ-Tools 3.00.1218 уже не доступен по ссылке (доступна только платная 8 версия) . Есть ли возможность как-нибудь получить версию MZ-Tools 3.00.1218?
Заранее спасибо.
Для восьмой версии вроде можно, а для этой нет.
Скажите пожалуйста,- существует ли в природе тулс или макрос для коррекции ссылок в VBA модулях после вставки рядков/столбцов?
Т.е. например: использовал в формулах cell(22,3) или range('C22'), а после вставки пары рядков должно будет быть cell(24,3) ... и так ко всей книге....
Суть проблемы в следующем.
Имеется сервер windows server 2008 r2 standard. На нем много учётных записей. Под одной из них можно устанавливать дополнения. Учётная запись под которой я работаю таких прав не имеет. Под другой Учётной записью был установлен smart indenter, и VBE Tools. Под данной Учётной записью на вкладках всё появилось и надстройки работают. Когда же я захожу под своей Учётной записью то этих надстроек нет. Конечно было бы проще дать права моей учётной записи и установить из под неё. Но этих прав мне никто не даст подскажите как быть. Тем более до этого таким же образом из под другой учетной записью был установлен Power Query и из под всех учётных записей он отображается и работает корректно.
В Add-in Manager под моей учетной записью этих надстроек просто нет.
Подскажите пожалуйста как быть ????
Может кто знает аналогичную надстройку для 16 офиса?
MZ tools стоит слишком дорого.
А вот