В интернет пространството често срещам въпроси от типа Има ли бъдеще VBA? Идва ли края на „епохата“ на VBA? Защо трябва да уча VBA?
VBA (Visual Basic for Applications) е стандартен програмен език, който се използва от милиони специалисти по света, за да автоматизират различни задачи в приложенията на Microsoft Office. Този език се използва от десетилетия и е един от най-лесните езици за научаване, дори ако нямате компютърно образование. В тази статия ще се опитам да обобщя мнението на водещи специалисти в областта на VBA и Excel, публикувани в Интернет и да отговоря на тези въпроси.
Какво представлява VBA?
Visual Basic for Applications (VBA) е наследник на MS Visual Basic 6.0, но голяма част от елементите му са препрограмирани, за да се опрости изпълнението на потребителските задачи. VBA e интегриран в приложенията (desktop applications) на Microsoft Office (MS Office, MS Office 365, Office) с цел да управлява обектите на всяко едно приложение.
Всяко приложение има йерархичен модел на обектите. Най-отгоре е Ниво1, избраното приложение – за Excel това е обектът Application Excel. Ниво2 включва обектите WorkBook, Command Bars, Ribbons, Ниво3 включва обектите WorkSheets и VBA Projects. На най-ниското ниво в йерархията са поставени обектите Ranges, Shapes, Pivot Tables, Chart Objects.
VBA предоставя на потребителите възможност да създават нови и персонализирани функционалности като надграждат традиционно включените функционалности, да автоматизират процесите и да се свързват с Windows API чрез DLLs (Dynamic-Link Libraries).
API – application programming interface позволява на потребителските програми да взаимодействат с Windows платформата. Всички Windows програми с изключение на конзолните програми трябва да си взаимодействат с Windows API без значение на какъв програмен език са написани.
Например, имате възможност да създавате персонализирани и специфични настройки за инструментите на графичния потребителски интерфейс като менюта, диалогови прозорци и ленти с инструменти (tool bars).
С код, написан на VBA, автоматизирате изпълнението на повтарящи се и рутинни задачи в ежедневната работа, значително намалява допускането на грешки, изпълнява се многократно, но винаги по един и същ начин.
С появата си през 1993 г. VBA коренно променя използването на Excel. От обикновена електронна таблица се превръща в мощен инструмент за надграждане на стандартните възможности и създаване на специфични автоматизирани потребителски решения.
Visual Basic for Applications произхожда от Visual Basic като използва неговата Visual Basic Runtime Library. Въпреки това, програмите на VBA се изпълняват само в рамките на приложението, а не като самостоятелна (standalone) програма.
От друга страна VBA може да управлява едно приложение от друго приложение като използва OLE Automation. Например VBA може автоматично да създаде документ в MS Word с данни от MS Excel, след това с MS Outlook да изпрати мейл до съответните получатели.
VBA е интегриран в повечето приложения на Microsoft Office в т.ч. Office за Mac OS X (с изключение на версия 2008), Microsoft MapPoint Microsoft Visio.
Също така VBA е вграден, макар и частично, в програми създадени от други софтуерни компании: ArcGIS, AutoCAD, Collabora Online, CorelDraw, Kingsoft Office, LibreOffice, Reflection, SolidWorks, WordPerfect и UNICOM System Architect – поддържа версия VBA 7.1.
Хронология на версиите на VBA
За първи път VBA е включен в MS Excel 5.0 през 1993 г. и коренно променя използването на Excel. От обикновена електронна таблица се превръща в мощен инструмент за надграждане на стандартните възможности и създаване на специфични автоматизирани потребителски решения.
През 1996 г. излиза напълно обновената версия VBA 4.0, написана на С++, която превръща VBA в обектно-ориентиран програмен език.
VBA 5.0 е представен през 1997. От тази версия вече VBA става достъпен за всички приложения, включени в MS Office 97 с изключение на Outlook 97, който използва VBScript.
Следващите версии VBA 6.0 и VBA 6.1 излизат през 1999 г. По-специално трябва да се отбележи поддръжката на COM add-ins в Office 2000.
Следващите версии имат незначителни допълнения: Office XP включва VBA 6.3, Office 2003 - VBA 6.4 и VBA 6.5 е представен с Office 2007.
Office 2010 включва VBA 7.0, която не се различава съществено от VBA 6.5 за потребителите-програмисти с изключение на 64-bit поддръжка. След VBA 6.5/Office 2007, Microsoft спря лицензирането на VBA за други приложения.
Office 2013, Office 2016, Office 2019 и Office 2021 включват VBA 7.1.
Отговор на въпроса: Защо да уча VBA днес?
Директният отговор е: ДА!
1. Защото това е програмен език, който лесно се научава самостоятелно, без да е необходимо да завършвате специални класове по програмиране. Синтаксисът на VBA e лесен за разбиране, няма сложни фрази, които трябва да се запомнят, само пишете това, което искате да се изпълни и готово, става!
2. Macro Recorder. Този инструмент ви позволява да запишете код за всяка една команда, която физически изпълнявате в Excel само като натиснете бутона за запис. Macro Recorder автоматично „превежда“ командите на Excel в инструкции, програмен код на VBA. Това може да не е най-ефикасният начин да се пише код, но въпреки това генерираните инструкции автоматизират изпълнението, без да се налага по-сериозна допълнителна редакция.
3. Тонове документация и Help. VBA е програмен език, който се използва от много години и поради тази причина съществува огромно количество полезна и достъпна документация като блогове, форуми, страници на водещи специалисти, множество видео-уроци „Как да ...“. Нещо повече достатъчно е само да зададете въпрос и веднага или в рамките на минути ще получите различни решения на вашия проблем.
4. Тъй като VBA е вграден в Microsoft Office не се налага да правите допълнителни инсталации и разходи.
5. Платформите за изкуствен интелект (AI) и ChatGPT също ще ви помогнат, но имайте едно наум, че все още не се справят много добре и не винаги ще получите адекватно решение.
Отговор на въпроса: Има ли бъдеще VBA?
Нека да сравним развитието на Excel и VBA (вж. По-горе Хронология на версиите на VBA).
На всеки три години излиза нова версия на MS Excel, която включва нови инструменти и функционални възможности. Голяма част от потребителите си спомнят поразителната промяна във версия 2007. Традиционните командни менюта, ленти с инструменти, диалогови прозорци бяха заменени от нова навигационна система и множество нови функционални възможности, които направиха работата по-лесна и удобна, както никога преди тази версия. Размерите на всеки един работен лист станаха 16 384 колони и 1 048 576 реда. Добавени са нови файлови формати.
В сравнение с Excel, в интерфейса на редактора на VBA почти нищо не се е променило след обновената версия VBA 4.0 през 1996 г. Новите функционалности, които се включват в MS Excel не могат да се обработват и записват с Macro Recorder.
От много години Visual Basic for Applications (VBA) стана незаменим инструмент за създаване на автоматизирани решения в приложенията Microsoft Office. Предпочитан заради неговата простота и ефективност VBA има безброй много потребители от абсолютно начинаещи до „заклети“ професионалисти, за да рационализират задачи, да повишават производителността и да отключват нови възможности в пределите на Excel, Word и останалите Office приложения.
Във времето на нарастващото развитие на изкуствения интелект, AI, както и политиката на Microsoft да включва по-модерни програмни езици като Python и JavaScript в Power Query, Power BI и Power Automate, съвсем естествено възниква въпроса: Какво е бъдещето на VBA? Докога ще съществува VBA? Този въпрос става още по-актуален като се добави и представянето на GPT-4 и Microsoft Copilot, с техните възможности за използване на естествения човешки език. Но дали това е краят на VBA или той ще продължи да заема своето място в средата на така бързо развиващите се технологии?
Независимо от напредващото развитие на ИИ и разпространението на модерни алтернативни технологии, VBA притежава уникални характеристики, които гарантират неговото продължаващо използване:
1. VBA продължава да бъде един от най-достъпните програмни езици, особено за тези потребители, които нямат специализирано образование в компютърните науки.
2. VBA е интегриран в Office приложенията и това му дава предимството на безценен инструмент бързо и без особени усилия за намиране на решения и тяхното автоматизирано изпълнение, директно в документа, с който потребителя работи.
3. Големи организации, в т.ч. и държавни, както и мулти-национални корпорации имат стабилно работещи системи, разработени с VBA. Разходите и сложността за мигриране към нови платформи има своята цена, която не е за подценяване.
4. Безупречната интеграция на VBA с целия Office пакет предоставя възможности, които е изключително трудно да се заменят с други програмни езици. Тази интеграция позволява на потребителите да автоматизират задачи, които манипулират обекти на Excel, Word, Outlook, без да излизат от Office системата.
5. VBA общността е жизнена и активна в множество форуми, блогове и ресурси, непрекъснато актуализира и допълва информацията, за да поддържа и развива приложенията. Тази общност е гаранция, че VBA е жив, развиващ се език, отговорен за потребностите на своите потребители.
Въпросът за бъдещето на VBA не е въпрос за оцеляване или изчезване. По-скоро въпросът за бъдещето на VBA е въпрос за развитие и приспособяване. Технологиите на изкуствения интелект като GPT-4 и Copilot улесняват значително писането на програмен код, помагат както на начинаещите да учат, а така също и на опитните потребители да повишават своята продуктивност.
VBA може да не е на върха на новите технологични тенденции, но той стабилно запълва една ниша, изоставена от обозримото бъдеще. С една дума бъдещето на VBA не е да бъде заместено от новите технологии, а по-скоро да продължи съжителството си с тях като предлага мост между остарялото и модерното програмиране в средата на Office системата.
И накрая искам да завърша с още едно, макар и скромно доказателство за бъдещето на VBA.
В Компютърно образователен център Progress (https://progressbg.net/), преподавам курс по Visual basic for MS Excel. През последните 2-3 години забелязвам повишен интерес към този курс. Курсистите имат различни професии и образование, интересът е много голям. Ще споделя и една лична история. Курсист, който е посещавал мои курсове преди 10 години, специално е посочил, че желае да се включи точно в този курс, без значение колко време трябва да чака! За мен това е голямо признание.
VBA продължава напред!
Повече за нашия курс по Visual basic for MS Excel
Автор на статията: Димитринка Вълкова, дългогодишен преподавател по “MS Excel”, ”Visual basic for MS Excel” и “Power BI” към Компютърно образователен център Progress.