👉 В этом разделе мы на примерах разбираем сложные айтишные термины. Если вы хотите почитать вдохновляющие и честные истории о карьере в IT, переходите в другие разделы.
Visual Basic — компьютерный язык (точнее, семейство языков), созданный и развиваемый корпорацией Microsoft, а также интегрированная среды разработки. Является дальнейшим развитием языка QuickBasic (также разработанного Microsoft), от которого унаследовал общую концепцию, стиль и синтаксис.
Однако, развитие Visual Basic пошло в сторону процедурного, объектного, компонентного и событийного программирования. Язык активно используется как для разработки Windows-приложений, так и для создания ПО для других платформ. Visual Basic можно скачать и использовать как отдельно, так и в составе Microsoft Visual Studio.
История развития
История Visual Basic началась в 1991 году, когда на основе синтаксиса QuickBasic компания Microsoft выпустила первую версию нового языка для своей операционной системы Windows. Новшеством, выделяющим новинку, стала связь с графическим интерфейсом, ранее реализованная программистом Аланом Купером в прототипе Tripod. Но именно в Visual Basic 1.0 эта реализация достигла нужного уровня. В том же году вышла версия языка для операционной системы MS-DOS с конвертором кода для Windows.
Первые версии языка были не слишком популярны, потому что по своему синтаксису и возможностям практически не отличались от QBasic, за исключением связки с графическим интерфейсом. Второй билд был дополнен функцией подсветки синтаксиса, среда разработки стала проще и понятнее.
Популярность Visual Basic начала расти с выходом версии 3.0 (1993 год). В нее были внесены существенные изменения — в частности, появилась возможность взаимодействовать с базами данных Access, а графический интерфейс переработали так, что работать с языком стало просто даже людям, не имеющим навыков в программировании.
В 1995 году вышла версия 4.0, одновременно с релизом Windows 95 — первой по-настоящему популярной версией этой операционной системы. Эта связка сделала Visual Basic действительно востребованным языком среди программистов. Среди ее ключевых отличий — возможность разработки как 32-, так и 16-разрядных приложений для Windows, а также появление полноценного компилятора, существенно увеличивающего скорость выполнения программ.
Начиная с версии 7.0, выпущенной в 2002 году, Microsoft резко изменила концепцию Visual Basic. Фактически, это уже был новый язык, хотя и позиционирующийся как логическое развитие предыдущего. Новая версия получила название Visual Basic.NET, она не имела обратной совместимости с предыдущими релизами. Ключевым отличием стало то, что код теперь стал полностью управляться фреймворком NET Framework Common Language Runtime.
Версии языка Visual Basic
Таким образом, в семействе языков Microsoft Visual Basic можно выделить несколько основных версий.
Visual Basic Classic (классический). Это первая версия языка, главные отличия которого заключались в основанных на QBasic общей концепции и синтаксисе, а также жесткая привязка к своей среде разработки и операционной системе. Иначе говоря, программировать на нем можно было только в собственной IDE и ОС Windows. Среда разработки предлагала пользователю широкий набор инструментов, таких как встроенный отладчик, функция просмотра переменных и структур в режиме реального времени, всплывающие подсказки, подсветка синтаксиса и т.д. Из-за этого программировать на классическом Visual Basic вне IDE (например, в обычном текстовом редакторе) было просто невозможно. Эта версия перестала развиваться в 2002 году, когда ее сменил Visual Basic .NET.
Visual Basic for Applications (VBA). Фактически, это тот же самый Classic, только немного упрощенный и адаптированный под разработку макросов и прикладного ПО для конкретных приложений. Язык программирования VBA встроен в структуру офисного пакета Microsoft Office (Word, Excel и т.д.), а также программных продуктов от других разработчиков — например, AutoCAD, CorelDraw, SolidWorks. Основанный на стандарте Microsoft COM (Component Object Model), он может задействовать все имеющиеся в ОС Windows COM-компоненты и ActiveX. Иными словами, можно исключительно с помощью средств, например, CorelDraw и языка VBA создавать приложения для Microsoft Office.
Visual Basic Scripting Edition (VBScript). Тоже урезанная версия классического Visual Basic, но направленная на разработку скриптов для приложений, использующих технологию Active Scripting. VBS применяется, например, для написания клиентских сценариев в Internet Explorer и серверного кода в веб-приложениях, автоматизации административных функций в ОС семейства Windows и т.д.
Visual Basic.NET. Версия, появившаяся в 2002 году и представлявшая собой другой язык, в котором старые методы, применявшиеся в классическом Visual Basic, использовать уже было нельзя. Его основное отличие — тесная интеграция с платформой .NET Framework, выпущенной в то же время. В этой версии акцент смещен с индивидуальных особенностей самого языка на возможности фреймворка. Концептуально Visual Basic.NET. развивался в сторону объектно-ориентированности, он стал поддерживать полиморфизм, статическую типизацию, наследование и перезагрузку операторов. Благодаря этому с помощью него стало возможным создание действительно крупных программных продуктов, которые одновременно были гибкими и масштабируемыми. Несмотря на популярность и очевидные достоинства Visual Basic.NET., компания Microsoft прекратила его поддержку в 2020 году в пользу другого своего языка C#. «Вижуал Бэйсик» продолжает поставляться в комплексе с новыми версиями платформы .NET, однако обновлений для него не планируется.
Описание Visual Basic
Язык программирования «Вижуал Бэйсик» относится к категории императивных. Написанные на нем программы представляют собой строгую последовательность команд (приказов — отсюда и название «императивный»), причем каждая последующая использует данные, полученные при исполнении предыдущей. Кроме того, Visual Basic объединяет в себе элементы сразу нескольких парадигм (методологий) программирования:
- Процедурной — можно разбивать задачу на более мелкие и группировать последовательно выполняемые операторы кода в подпрограммы для их решения;
- Объектно-ориентированной — программу на Visual Basic можно представить как совокупность взаимодействующих друг с другом объектов, каждому из которых присвоен определенный класс, образующий определенную иерархию;
- Компонентно-ориентированной — она представляет программу как совокупность отдельных независимых языковых конструкций (модулей или компонентов) исходного кода, предназначенных для повторного использования;
- Событийно-ориентированной — в Visual Basic имеются встроенные обработчики событий, таких как использование программистом клавиатуры и мыши, сообщений, поступающих от других приложений, активности операционной системы и т.д.
Главной особенностью Visual Basic, отличающей его от большинства языков, стало применение в программировании графического интерфейса. Фактически, пользователь мог создать свое приложение как конструктор, используя готовые визуальные компоненты (например, кнопки управления, поля и т. д.), расставляя их в нужном порядке методом drag and drop (перетащи и брось). Так как эти компоненты имеют свои атрибуты и обработчики событий, они будут реагировать на действия пользователя при исполнении программы. Это дает возможность разрабатывать реально работающие (хоть и ограниченные по функционалу) приложения даже человеку, не имеющему никакого опыта в программировании.
Написание программ на Visual Basic происходит в интегрированной среде разработки, которая помогает пользователю подсказками, подсветкой синтаксиса, автоматической подстановкой и т.д. Управленческие элементы обеспечивают основной функционал приложения, при этом разработчик может существенно расширить ее с помощью обработчиков событий, которые исполняют дополнительный код в зависимости от задействованного компонента.
До 4 версии у Visual Basic не было собственного компилятора, для запуска и исполнения программ использовались библиотеки, которые поставлялись вместе с языком. С появлением компилятора работа приложений значительно упростилась, хотя для реализации некоторых функций продолжали использоваться библиотеки. Однако, теперь они были интегрированы в саму операционную систему, что облегчало задачу разработчикам. В последних версиях компилятор поставляется вместе с Visual Basic в составе пакета Microsoft Visual Studio, куда также входят редактор исходного кода, отладчик и другие инструменты для разработки программ и веб-приложений.
Преимущества Visual Basic
Простота. Язык программирования Visual Basic унаследовал от своего прародителя QuickBasic простой синтаксис, который доступен для изучения новичкам в программировании. Поэтому для многих программистов именно с этого языка начинается знакомство с разработкой программ и веб-приложений. Кроме того, в нем прекрасно реализована концепция визуального проектирования, которая также снижает порог вхождения.
Высокая скорость разработки. Благодаря графическому интерфейсу на Visual Basic можно быстрее разрабатывать приложения. Особенно это касается программных продуктов для операционной системы MS Windows, в которую уже интегрированы многие нужные инструменты и библиотеки. С разработкой приложений для других платформ дело обстоит сложнее, их пользователям нужно скачивать и устанавливать эти компоненты отдельно.
Мощная поддержка. Visual Basic долгое время был одним из основных продуктов компании Microsoft — одной из самых богатых и влиятельных IT-корпораций мира. Поэтому он до сих пор имеет значительную коммерческую и техническую поддержку (хотя проект прекратил развитие еще 2 года назад), информационное сопровождение в виде многочисленных учебников, инструкций, видеоуроков, справочных материалов и т. д. Это упрощает программистам поиск решений для возникающих перед ними задач.
Защита от ошибок. В Visual Basic используются указатели и доступ к памяти. Это делает написанные на нем приложения более стабильными. Кроме того, за счет постоянной автоматической компиляции программы по ходу ее написания в P-код (абстрактный машинный код для виртуальных машин) есть возможность быстро найти ошибку, не перезапуская приложение. Наличие удобного редактора с функциями автоматической подстановки, подсветки синтаксиса также повышают надежность работы конечного продукта.
Сильная типизация. В классическом Visual Basic была реализована строгая система типов. Это исключало возникновение многих неочевидных ошибок, которые свойственны языкам со слабой типизацией. С другой стороны, это же и в некоторой степени ограничивало возможности Visual Basic как императивного языка.
Недостатки Visual Basic
Ограниченная кроссплатформенность. На Visual Basic можно писать программы только под операционные системы Microsoft Windows и Apple MacOS. Хотя усилиями энтузиастов были разработаны некоторые способы, допускающие разработку приложений на VB для других платформ, особого распространения они не получили ввиду своей сложности.
Строгая привязка к среде программирования. Писать код на Visual Basic можно только с помощью поставляемых вместе с ним инструментов. С одной стороны, интегрированная среды разработки дает широкие возможности программисту. С другой — язык нельзя использовать вне ее, например, в обычном текстовом редакторе. В частности, это не позволяет писать на нем код многим программистам-пользователям операционных систем Linux.
Медленная работа программ. Практически все функции языка реализованы посредством библиотеки времени исполнения. Она выполняет множество необязательных действий для проверки и преобразования типов, что существенно замедляет работу приложений. У небольших приложений этот недостаток практически незаметен за счет избыточности ресурсов современных компьютеров, но при выполнении больших и многопоточных программ становится ощутимым.
Применение Visual Basic
Язык программирования Visual Basic создавался корпорацией Microsoft прежде всего как инструмент разработки продуктов для своей операционной системы Windows. Эта привязка сохранилась на протяжении всего срока развития и поддержки VB, за что неоднократно подвергалась критике. Однако, в рамках своей экосистемы он позволяет разрабатывать самые разные программные продукты:
- плагины и макросы для приложений Microsoft Office, CorelDraw, AutoCAD и некоторых других профессиональных программных продуктов;
- графические интерфейсы приложений, чему очень способствуют встроенные в язык инструменты визуальной разработки;
- консольные приложения, запускаемые с помощью командной строки — например, файловые менеджеры, веб-браузеры, текстовые редакторы и т.д.;
- игры — как правило, текстовые (вроде «О, счастливчик!») или несложные графические программы из-за того, что реализовать на Visual Studio полноценные проекты с развитой графикой и физикой очень сложно;
- специализированные приложения для выполнения математических, научных и статистических расчетов;
- серверные и веб-приложения и другие программные продукты.
Еще одной сферой, где Visual Basic популярен до сих пор, остается обучение программированию. Благодаря тому, что небольшое приложение на нем можно создать, практически не прописывая код, с помощью исключительно визуальных инструментов, это сильно снижало порог вхождения пользователя. При этом язык (точнее, его среда разработки) наглядно демонстрирует принцип работы компьютерной программы, взаимодействие ее компонентов и т. д.
Значение и перспективы Visual Basic
В 2020 году Microsoft заявила, что прекращает развитие этого языка (точнее, его версии Visual Basic.Net), хотя он продолжит выходить в комплекте Visual Studio. Visual Basic for Applications (VBA) по-прежнему используется во многих приложениях, созданных самой корпорацией и сторонними разработчиками. Однако, новых функций в него добавляться уже не будет.
Visual Basic с самого своего появления имел неоднозначную репутацию в среде профессиональных программистов. Многие специалисты считали его «игрушечным», пригодным только для обучения и создания небольших приложений и игр. Простота языка (точнее, принципа визуального проектирования) критиковалась за то, что сильно снижала порог вхождения, из-за чего любители создавали хоть и работоспособные, но крайне неэффективные продукты.
Тем не менее, Visual Basic стал одним из знаковых достижений компании Microsoft и оказал влияние на развитие других компьютерных языков. Некоторые из реализованных в нем решений были использованы в том же С#. Он также стал отличной «учебной партой» для многих специалистов, которые затем перешли на более востребованные ЯП.
Аннотация: Язык Visual Basic for Applications (Visual Basic для приложений, сокращенно VBA) является основным инструментом офисного программирования.
13.1. Visual Basic for Applications
Язык Visual Basic for Applications (Visual Basic для приложений, сокращенно VBA) является основным инструментом офисного программирования, т.е. программирования в пакетах MS Office. VBA – реализация языка программирования Visual Basic, встроенная в линейку продуктов Microsoft Office, а также во многие программные пакеты, такие как AutoCAD, WordPerfect и другие.
Язык Basic был разработан как средство обучения и работы непрофессиональных программистов. Его назначение ясно из названия, которое является сокращением от Beginner‘s All-purpose Symbolic Instruction Code (многофункциональный язык символических инструкций для начинающих). Популярность этому языку придала его простота. Язык Basic поставлялся вместе с компьютерами и рекомендовался для начинающих программистов.
Microsoft Visual Basic (VB) – популярный инструмент разработки приложений в среде Windows, является очень удобным средством для решения небольших задач и для обучения непрограммистов, которые хотели бы создавать собственные приложения.
В MS Office 97 впервые была реализована общая среда разработки VBA 5.0 для решения задач как по автоматизации операций, так и по созданию законченных приложений. VBA 5.0 использовала тот же самый языковый механизм и среду разработки, что и универсальная система VB 5.0. В состав новых версий MS Office включаются и новые версии VBA, которые применяются в настоящее время во многих офисных пакетах. Язык VBA, являясь унифицированным языком программирования для всех приложений, упрощает создание программных решений. VBA заменил прежние специализированные языки разработки, например, WordBasic, и расширил их функциональные возможности.
Microsoft позиционирует сегодня свой пакет MS Office не просто как набор прикладных программ, а как комплексную платформу для создания бизнес-приложений, ориентированных на широкий круг задач конечных пользователей.
Полнофункциональная среда разработки одинакова вне зависимости от приложений и включает в себя средства отладки, редактирования программного кода, проверку синтаксиса и просмотра объектов приложений. Обладая всеми чертами современных объектно-ориентированных языков, VBA поддерживает механизм визуального проектирования форм, позволяет включать в диалоговые окна и внедрять в документы элементы управления на базе ActiveX.
Если процедуры VBA используют специфические объекты приложения, то они могут выполняться только в рамках приложения, для которого они написаны. Программные решения могут объединять одновременно несколько приложений, например, можно программно создать документ MS Word на основе данных рабочей книги MS Excel.
13.2. Преимущества и недостатки разработки приложений в офисной среде
К достоинствам VBA можно отнести следующие:
- относительная простота разработки. Несмотря на свою мощность и гибкость, этот язык очень прост для изучения. Пользователи- непрограммисты могут управлять своим документом, сами создавать приложения «под себя»;
- язык встроен в офисную среду. Пакет MS Office широко распространен. Миллионы людей по всему миру используют приложенияMS Office в своей повседневной работе и им проще работать с уже известной технологией. Любое дополнительное решение в этой среде не вызывает серьезных затрат на обучение и поддержку;
- сокращение времени и затрат при использовании MS Office в качестве платформы для разработки объясняется тем, что большинство необходимых функций уже реализовано в офисных приложениях. Это форматирование текстов, выполнение разного рода расчетов, поиск и отбор данных, построение диаграмм и т.д. Разработчик включает готовые компоненты во вновь создаваемые приложения, может повторно задействовать разработанные программы в нескольких проектах, основанных на одном или на разных офисных приложениях;
- среда MS Office обеспечивает интегрированные решения. Так как все
офисные приложения тесно интегрированы и имеют единый интерфейс, решения, создаваемые с помощью компонентов MS Office, будут иметь похожую структуру и включать все средства обработки документов, необходимые для работы конечного пользователя.
Основными недостатками VBA являются:
- невозможность создания автономного приложения и открытость
- программ для случайного изменения;
- реализована только парольная защита модулей проекта;
- наличие процедур VBA может восприниматься как макровирусы.
Вследствие широкого распространения макровирусов в офисных пакетах предусмотрены опции для защиты от вирусов. Пользователь по своему усмотрению может исполнять макросы VBA или не исполнять их.
Не следует путать с Visual Basic .NET.
|
|
Класс языка: | Процедурный
Объектно-ориентированный Компонентно-ориентированный Событийно-ориентированный |
---|---|
Тип исполнения: | Компилируемый
Интерпретируемый |
Появился в: | 1991 |
Расширениефайлов: | .bas, .cls, .frm, .vbp, .vbg |
Выпуск: | 6.0 — 17 января 1998 года. |
Система типов: | Статическая типизация
Строгая типизация Динамическая типизация |
Основные реализации: | Microsoft Visual Studio |
Диалекты: | Visual Basic for Applications, Visual Basic Script |
Испытал влияние: | QuickBasic, BASIC |
Повлиял на: | Visual Basic .NET
REALbasic Gambas Xojo Basic4ppc |
Сайт: | msdn.microsoft.com/ru-RU/vstudio/ms788229.aspx |
Microsoft Visual Basic — язык программирования, а также интегрированная среда разработки программного обеспечения, разрабатываемое корпорацией Microsoft. Язык Visual Basic унаследовал дух, стиль и отчасти синтаксис своего предка — языка BASIC, у которого есть немало диалектов. В то же время Visual Basic сочетает в себе процедуры и элементы объектно-ориентированных и компонентно-ориентированных языков программирования. Интегрированная среда разработки VB включает инструменты для визуального проектирования пользовательского интерфейса, редактор кода с возможностью IntelliSense и подсветкой синтаксиса, а также инструменты для отладки приложений.
Visual Basic также является хорошим средством быстрой разработки (RAD) приложений баз данных для операционных систем семейства Microsoft Windows. Множество готовых компонентов, поставляемых вместе со средой, призваны помочь программисту сразу же начать разрабатывать бизнес-логику приложения, не отвлекая его внимание на написание кода запуска программы, подписки на события и других механизмов, которые VB реализует автоматически.
Первое признание серьёзными разработчиками Visual Basic получил после выхода версии 3. Окончательное признание как полноценного средства программирования для Windows — при выходе версии 5. Версия VB6, входящая в состав Microsoft Visual Studio 6.0, стала по-настоящему зрелым и функционально богатым продуктом.
История развития[]
Visual Basic 1.0 для MS-DOS. Дизайнер форм Visual Basic 1.0 для MS-DOS. Редактор кода Visual Basic 1.0 для Windows Visual Basic 2.0/3.0 Visual Basic 6.0
Дата выпуска | Версия | Описание |
---|---|---|
Май 1991 | 1.0 | Visual Basic 1.0 для Microsoft Windows. За основу языка был взят синтаксис QBasic, а новшеством, принесшим затем языку огромную популярность, явился принцип связи языка и графического интерфейса. Этот принцип был разработан Аланом Купером (Alan Cooper) и реализован в прототипе Tripod (также известном как Ruby) |
Сентябрь 1992 | 1.0 | Visual Basic 1.0 под DOS. Он не был полностью совместим с Windows-версией VB, поскольку являлся следующей версией QuickBASIC и работал в текстовом режиме экрана. Интересно отметить, что в составе была специальная утилита, которая конвертировала проекты данной версии в проекты Visual Basic 1.0 для Windows. Она делала код максимально совместимым с Windows-версией, конвертировала формы (хотя результат получался неудовлетворительным из-за различий текстового и графического режима), а также давала в коде комментарии с подсказками по дальнейшему улучшению. |
Ноябрь 1992 | 2.0 | Visual Basic 2.0. Среда разработки стала проще в использовании и работала быстрее. Окно «Свойства» переместилось в отдельный список. Добавлена подсветка исходного кода. |
1993 | 3.0 | Вышел в свет Visual Basic 3.0 в версиях Standard и Professional. Ко всему прочему, в состав поставки добавился движок для работы с базами данных Access. |
Август 1995 | 4.0 | Visual Basic 4.0 — версия, которая могла создавать как 32-х так и 16-разрядные Windows-приложения. Кроме того, появилась возможность писать на VB классы, а также Visual Basic наконец-то стал полноценным компилятором, что значительно увеличило скорость выполнения программ. Добавлена поддержка OLE Controls (OCX), взамен старым элементам управления VBX |
Февраль 1997 | 5.0 | Visual Basic 5.0 — начиная с этой версии, стало возможно, наряду с обычными приложениями, разрабатывать свои COM-компоненты. Скомпилировав такой компонент в OCX-файл и поставляя его, можно было предоставить свой объект управления не только конечномупользователю, но и другим разработчикам, после чего они могли интегрировать этот объект в свои приложения. В составе с интегрированной средой входят P-Code и Native компиляторы. Исполнением приложений занимается новая виртуальная машина реализованная в динамической библиотеке MSVBVM50.DLL. Также в 1 квартале этого года, Microsoft выпускает продукт в специальной редакции Visual Basic 5 Control Creation Edition (VB5CCE), который специализируется только над проектированием ActiveX элементов управления. |
Середина 1998 | 6.0 | Visual Basic 6.0 — Оптимизирована работы виртуальной машины и вынесена в MSVBVM60.dll. Улучшена работа Native-компилятора. Добавлены новые функции для работы со строками и массивами. Данная версия языка является последней в линейке классического VB. Microsoft изменила политику в отношении языков семейства Basic и вместо развития Visual Basic, был создан абсолютно новый язык Visual Basic .NET. |
2002 | 7.0 | Первый выпуск Visual Basic .NET. Наиболее важная особенность заключается в том, что код полностью управляем платформой .NET Framework Common Language Runtime. Нарушена обратная совместимость с классической версией Visual Basic. |
Апрель 2003 | 7.1 | Microsoft модернизирована Visual Basic .NET, оптимизировала работу компилятора. Выпущен совместно с обновлённой версией .NET Framework 1.1. |
2005 | 8.0 | Входит в состав Visual Studio 2005. Требует .NET Framework 2.0. После выхода Visual Basic .NET 2003, Microsoft убрала приставку «.NET» из названия продукта и следующая версия называется Visual Basic 2005. |
2008 | 9.0 | Входит в состав Visual Studio 2008. Требует .NET Framework 3.5 |
2010 | 10.0 | Входит в состав Visual Studio 2010. Требует .NET Framework 4 |
2012 | 11.0 | Входит в состав Visual Studio 2012. Требует .NET Framework 4.5 |
2013 | 12.0 | Входит в состав Visual Studio 2013. Требует .NET Framework 4.5.1 |
2015 | 14.0 | Входит в состав Visual Studio 2015 RC. Обновлен .NET Framework до версии 4.6 |
После выхода Visual Basic версии 6.0, разработчики из Microsoft существенно изменили направление развития данной технологии. Visual Basic .NET не позволяет программировать по-старому, потому что по сути является совершенно другим языком, таким же, как и любой другой язык программирования для платформы .NET. Индивидуальность языка, так же как и его преимущества (простота, скорость создания программ, лёгкость использования готовых компонентов) при использовании в среде .NET не имеют такого значения, как раньше — всё сосредоточено на возможностях самой платформы .NET, на её библиотеках классов. На данный момент (июнь 2015) нужно говорить о Visual Basic, как о классических версиях языка 4.0 — 6.0, его диалектах: Visual Basic for Applications (VBA) и Visual Basic Scripting Edition (VBScript) и о языке для платформы .NET — Visual Basic .NET.
Элементы языка[]
Типы данных[]
Переменные в Visual Basic объявляются оператором Dim
после которого указывается ключевое слово As
и тип переменной. Если тип опущен, то переменная объявляется как Variant. Если не указать конструкцию Option Explicit
в разделе деклараций, то явного объявления переменных не требуется и они автоматически будут созданы при первом использовании. Данное поведение может привести к снижению скорости выполнения программы, так как необъявленные переменные будут иметь тип Variant, а также возможны логические ошибки связанные с неверным вводом имени имеющейся переменной или риска конфликтов в приложении, когда область определения переменной не совсем ясна.
Dim strMessage As String 'объявление переменной символьного типа Dim iProductCount As Integer 'объявление переменной целочисленного типа Dim dt70YearsOfVictory As Date 'объявление переменной для хранения даты и времени Dim otherValue ' тип не указан, переменная типа Variant Public Sub Main() strMessage = "Привет, Мир!" iProductCount = 125 dt70YearsOfVictory = #5/9/2015 2:00:00 PM# ' дата 9 мая 2015 14:00:00 otherValue = 12.5 ' тип переменной Variant, подтип Double. otherValue = "Википедия" ' тип переменной Variant, подтип String. End Sub
Таблица основных типов Visual Basic 6.0
Наименование | Размер типа | Описание типа данных |
---|---|---|
Byte | 1 байт | Байт. Предназначен для хранения целых чисел от 0 до 255. Если переменной такого типа присвоить значение, выходящее за эти пределы, то Visual Basic сгенерирует ошибку времени выполнения. |
Integer | 2 байта | Целое. Предназначен для хранения целых чисел в диапазоне −32 768 до 32 767. Суффикс для обозначения типа «%». |
Long | 4 байта | Длинное целое. Предназначен для хранения целых чисел в диапазоне −2 147 483 648 до 2 147 483 647. Суффикс для обозначения типа «&». |
Single | 4 байта | С плавающей точкой одинарной точности. Диапазон от -3,402823E38 до -1,401298E-45 для отрицательных значений; от1,401298E-45 до 3,402823E38 для положительных значений. Суффикс для обозначения типа «!» |
Double | 8 байт | С плавающей точкой двойной точности. Переменные этого типа позволяют хранить числа с точностью до 16 цифр и длиной до 300 символов. Диапазон значений варьируется от −1.80E+308 до 1.80E+308. Суффиксом является «#». Вычисления с ним являются приблизительными, так как используется бинарное представление числа согласно стандарта IEEE 754. |
Decimal | 16 байт | Масштабируемое целое. Этот тип использует десятичное представление чисел. Вычисления с ним, также как с типом Currency являются точными. Диапазон значений от −7.92E+28 до 7.92E+28. Нельзя напрямую объявить переменную с типом Decimal. Он может использоваться только как подтип для Variant и переменную можно привести к данному типу с помощью функции кастования CDec .
|
Boolean | 2 байта | Булев тип данных может хранить только два значения: True либо False, истина или ложь. Истинное значение в VB соответствует целочисленной −1, а ложь равна 0, а при неявном приведении типа, любое численное значение отличное от нуля рассматривается как истина. Такое поведение позволяет использовать логические операторы AND , OR , NOT , XOR не только для булевой алгебры, но также и для битовых операций.[1]
|
String | 10 + 2*N байт | Строка переменной длины. Предназначен для хранения строковой (символьной) информации. Сама строка хранится в кодировке Unicode, поэтому каждый символ кодируется 2-мя байтами. Если посмотреть тип изнутри, то используется дополнительно 4 байта для хранения указателя на строку, 4 байта для размера строки, а сама строка завершается нуль-символами (ещё 2 байта). Таким образом максимальный размер строки может достигать до 2 Гбайт. Суффикс типа «$». |
String*N | 2*N байт | Строка постоянной длины. Также как и тип String хранит символьные данные, за исключением того, что размер данных фиксированный и указывается при объявлении переменной. Если значение строки слишком большое, то она усекается до необходимого размера. Если строка меньше чем требуется, то происходит выравнивание размера добавлением символа «пробела». Следует заметить, что фиксированные строки и массивы, а также структуры не могут быть больше 64 кб. |
Date | 8 байт | Тип данных позволяет хранить значения времени и даты в промежутке от полуночи 1 января 100 года до полуночи 31 декабря 9999 года. Если переменной присвается только значение даты, то время равняется 00:00. Целочисленная единица представляет собой одни сутки. Это позволяет добавлять и вычитать даты используя только математические операторы, но для выполнения этих целей VB предоставляет специализированные функции работы с датами. |
Object | 4 байта | Используется для хранения ссылки на объект. Присваивание переменной для этого типа происходит с помощью оператораSet . Сам тип является аналогом IDispatch, в нем хранится ссылка на интерфейс IDispatch. Для любого объекта нужно использовать IUnknown.
|
Currency | 8 байт | Денежный. Данный тип может иметь до 4 цифр после запятой, и до 14 — перед ней. Значение представляют собой числа в десятичной системе счисления, а не в двоичной, как это происходит для типов с плавающей запятой одинарной и двойной точности. Таким образом вычисления будут произведены точно. Диапазон значений от −922 337 203 685 477,5808 до922 337 203 685 477,5807. Данный тип является предпочтительным для проведения финансовых расчетов. Суффикс «@» |
Variant | 16 байт / 22 байта+N байт / N-байт | Переменная типа Variant может содержать данные любого типа, включая ссылки на объекты, пользовательские типы и массивы. Visual Basic автоматически производит необходимые преобразования данных. Подтип содержащий число требует 16 байт памяти, а для хранения строковых данных 22 байта + длина самой строки. Диапазон значений равен диапазону значений подтипа. Данный тип самый медленный по скорости выполнения, так как требуется время на распаковку и упаковку значений. |
Операторы[]
Язык Visual Basic содержит множество операторов, которые отвечают за арифметические операции, операции сравнения и присвоения, а также конкатенации.
Оператор присвоения
- Знак равенства (=) используется для присвоения значения переменной. Также возможно использование ключевого слова
Let
перед именем переменной. В ранних версиях языка BASIC его наличие было обязательным, но в Visual Basic он оставлен для совместимости. Для присвоения переменной объектного типа, необходимо наличие ключевого словаSet
. Примеры:nVar = 10
,Let iCount = 20
,Set refDouble = objClass
.
Многократное присваивание, так как это реализовано в языке C, невозможно. A = B = C
не означает, что A
, B
и C
будут иметь равные значения. VB оценит выражение B = C
и в переменную A
присвоит результат True
или False
, 0 или -1, в зависимости от типа.
Арифметические операторы
- сложение (+), вычитание (-), умножение (*), деление (/)
- возведение в степень (^). Пример:
2 ^ 3 = 8
- целочисленное деление (). Делит первое число на второе, отбрасывая (не округляя) дробную часть. Пример:
5 2 = 2
- деление по модулю (Mod). Делит первое число на второе, возвращая только остаток от деления. Пример:
5 Mod 2 = 1
Операторы сравнения
- равенство (=). Пример:
If nVar = 10 Then
- больше, чем и меньше, чем (> и <). Пример:
If nVar > 10 Then
- больше или равно и меньше или равно (>= и <=). Пример:
If nVar >= 10 Then
- не равно (<>). Пример:
If nVar <> 10 Then
- сравнение объектов (Is). Определяет, ссылаются объектные переменные на тот же объект или на разные. Пример:
If obj1 Is obj2 Then
- оператор подобия (Like). Сравнивает строковый объект с шаблоном и определяет, подходит ли шаблон. Пример:
If strEmail Like "*@*.*" Then
Логические операторы
- логическое И (And) — Обе части выражения должны быть истинными, чтобы всё выражение стало истинным. Пример:
If (2 * 2 = 4) And (2 * 3 = 6) Then
- логическое ИЛИ (Or) — должно быть истинным хотя бы одно из выражений. Пример:
If (2 * 2 = 5) Or (2 * 2 = 4) Then
- логическое отрицание (Not) — возвращает
True
, если условие ложно и наоборот. Пример:If Not(2 * 2 = 5) Then
- логическое исключение (Xor) — в выражении
E1 Xor E2
возвращаетTrue
, если толькоE1 = True
или толькоE2 = True
, иначе —False
. - эквивалентность (Eqv) — оценивает эквивалентность двух выражений, возвращает
True
, если они имеют одинаковое значение. - импликация (Imp) — возвращает
False
, еслиE1 = True
иE2 = False
, иначе —True
.
Операторы конкатенации
- Оператор (+) используется для конкатенации строк. Если обе части выражения имеют символьный тип, то операция склеивания строк будет успешной. Если одна из частей выражения, имеет числовой тип, но другая часть не может быть корректно преобразована к числу, то возникает ошибка приведения типов. Чтобы не допустить таких ситуаций, рекомендуется использовать соответствующие операторы для конвертации типов или применять оператор (&) для соединения строк.
- Оператор (&) производит автоматическое преобразование выражений и значений в строковой тип. Например, выражение
str = "10" & 20
даёт результат «1020», а не «30». Если бы использовали оператор (+) в данном выражении, то VB привел бы выражение «10» к числовому типу 10, и в случае успеха, произвёл бы арифметическое сложение.
Управляющие конструкции[]
В Visual Basic, как и во многих языках программирования, существуют конструкции, предназначенные для управления порядком выполнения действий. Некоторые из конструкций, такие как GoSub
и Return
, оставлены для совместимости с ранними версиями языка BASIC, но реализация в виде отдельных процедур может обеспечить более структурированный код.
Оператор ветвления[]
Общий синтаксис:
'Запись оператора ветвления в одну строку If <условие> Then [действие_когда_условие_истинно] 'Такая запись позволит выполнить действия в зависимости от истинности условия If <условие> Then [действие_когда_условие_истинно] Else [действие_когда_условие_ложно] 'Запись оператора ветвления в несколько строк If <условие> Then [действие_когда_условие_истинно] ElseIf <условие2> Then [действие_когда_условие2_истинно] ElseIf <условиеN> Then [действие_когда_условиеN_истинно] Else [действие_когда_условие_ложно] End If
Оператор выбора[]
Общий синтаксис:
Select Case <проверяемое_значение> 'Переменная или выражение, которое требуется проверить по одному или нескольким условиям Case <значение_1> 'Выполняется действие, если проверяемое значение будет соответствовать значению 1 [действие_1] Case <значение_2>, <значение_3>, <значение_4> 'Проверяет список значений. Если найдено соответствие, то выполняется действие [действие_2] Case <значение_5> To <значение_6> 'Проверяет диапазон значений [действие_3] Case Is >= <значение_7> 'Проверяет значение на истинность с условием [действие_4] Case Else 'Выполняется действие, если ни одно из условий не выполнится [действие_5] End Select
Пример: вывод различных сообщений в зависимости от значения переменной
'Введём переменную и дадим ей значение вручную Dim X As Double X = InputBox("Введите числовое значение переменной Х") Select Case X 'Проверим, подходит ли некоторой воображаемой функции наше значение Case Is < 5, Is >= 20, 12 To 15 'Диапазон подходящих значений MsgBox "Действительное значение для некоторой функции" Case Else 'Не подходящие значения MsgBox "Значение не может быть использовано в некоторой функции" End Select
Цикл со счётчиком[]
Общий синтаксис:
For <переменная> = <значение> To <конечное_значение> [Step <шаговое_значение>] [блок_операторов] [Exit For] 'Выход из цикла Next [переменная]
Пример: подсчёт суммы чётных чисел от 1 до 100
For I = 0 To 100 Step 2 Sum = Sum + I Next
Совместный цикл[]
Общий синтаксис:
For Each <переменная> In <коллекция> [блок_операторов] [Exit For] 'Принудительный выход из цикла Next [переменная]
Пример: выводит на экран каждый элемент из массива
Dim strItem As Variant For Each strItem In Array("Яблоко", "Груша", "Слива") Print strItem Next
Цикл с условием[]
Общий синтаксис:
Do While <условие> 'Цикл выполняется, когда условие истинно [блок_операторов] [Exit Do] 'Принудительный выход из цикла Loop Do Until <условие> 'Цикл выполняется, когда условие ложно [блок_операторов] [Exit Do] Loop While <условие> 'Цикл выполняется, когда условие истинно [блок_операторов] Wend
Пример: Построчное чтение текстового файла
Open "file.txt" For Input As #1 Do While Not EOF(1) 'Возвратит True, если ожидается конец файла Line Input #1, strBuffer 'Чтение строки в переменную Debug.Print strBuffer 'Вывод в окно отладки Loop Close #1
Цикл с постусловием[]
Общий синтаксис:
Do [блок_операторов] [Exit Do] Loop While <условие> Do [блок операторов] [Exit Do] Loop Until <условие>
Процедуры и функции[]
Подпрограммы являются одними из основных элементов языка. Они представляют собой процедуры и функции.
- Процедура начинается с оператора
Sub
и заканчиваетсяEnd Sub
, между которыми и помещается код. Процедуры могут вызываться или самим Visual Basic, например, реализованные в виде обработчиков событий, или другими процедурами и функциями. Имя процедуры обработки события состоит из имени объекта, знака подчёркивания и имени события:
Private Sub Command1_Click() 'Событие будет вызвано при нажатии на элемент управления "Кнопка" ... End Sub Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) 'Вызывается при перемещении указателя мыши в окне формы ... End Sub
На самом деле Visual Basic реализует цикл обработки оконных сообщений Windows. В примере с формой, цикл отфильтрует сообщение WM_MOUSEMOVE
и автоматически вызовет процедуру Form_MouseMove
с параметрами: какие кнопки мыши были нажаты, координаты указателя. Данный механизм скрывает от разработчика некоторые аспекты программирования в среде Windows, позволяя ему сразу приступить к написанию пользовательского кода. В большинстве случаев, класс решаемых задач не потребует от программиста знаний о сообщениях и оконных функциях. Но Visual Basic не ограничивает программиста самому реализовать обработку оконных сообщений. Это позволяет очень гибко подходить к построению приложений, но и потребует достаточного опыта для написания подобного кода, который может вызвать нестабильную работу программы вплоть до аварийного завершения.
- Функции в VB начинаются с ключевого слова
Function
и заканчиваютсяEnd Function
. Возвращаемое значение функции присваивается переменной, совпадающее с названием функции. Для того, чтобы досрочно прервать выполнение процедуры или функции, существуют специальные операторыExit Sub
иExit Function
. Visual Basic 6.0 содержит встроенные функции для работы с файловой системой, датой и временем, математические функции, функции взаимодействия с системой, функции для работы со строками, функции приведения типов и функции осуществляющие финансовые расчёты. Также существуют недокументированные функции, которые позволяют работать, например, с указателями.
Пример функции для решения квадратного уравнения:
Private Sub Main() Dim RetX1 As Double, RetX2 As Double Dim strStatus As String strStatus = SolveQuadraticEquation(4, 6, 2, RetX1, RetX2) 'Решение уравнения 4*X^2 + 6*X - 2 = 0 'Выводим ответ MsgBox "Решение: " & strStatus & vbCrLf & _ "X1 = " & RetX1 & vbCrLf & _ "X2 = " & RetX2, vbInformation End Sub 'Функция решения квадратного уравнения Public Function SolveQuadraticEquation(ByVal A As Double, _ ByVal B As Double, _ ByVal C As Double, _ ByRef X1 As Double, _ ByRef X2 As Double) As String Dim D As Double D = (B * B) - (4 * A * C) 'Получаем значение дискриминанта If D >= 0 Then X1 = (-B - Sqr(D)) / (2 * A) 'Вычисляем корни уравнения X2 = (-B + Sqr(D)) / (2 * A) SolveQuadraticEquation = "Решение получено" 'Функция возвращает сообщение о решении Else SolveQuadraticEquation = "Дискриминант < 0. Корней нет" End If End Function
В этом примере можно заметить модификатор ByVal
перед аргументами A
, B
и C
. Это способствует тому, что параметры в функцию будут переданыпо значению. Модификатор ByRef
, напротив, передаёт значение по ссылке. Для такого типа модификатора, функция может модифицировать значения переменных, переданных в качестве параметров. Visual Basic по-умолчанию всегда передаёт значения по ссылке, если ни один из модификаторов не был указан.
Модули и классы[]
Программный код в Visual Basic хранится в модулях. Существуют три вида модулей: модуль формы (Form), стандартный модуль (Module) и модуль класса (Class Module).
- Модуль формы (расширение файла *.frm) является основой большинства приложений Visual Basic. Модуль формы содержит процедуры обработки события, общие процедуры и объявленные на уровне формы: переменные, константы, типы и внешние процедуры. Если открыть модуль формы в текстовом редакторе, можно увидеть описания формы и её элементов управления, включая их свойства. Код, размещённый в модуле формы, может ссылаться на другие формы или объекты приложения.
- Стандартный модуль (расширение файла *.bas) является контейнером для процедур, функций и объявлений, к которым обычно получают доступ другие модули приложения. Они могут содержать глобальную переменную (доступную всему приложению) или описанные на уровне модуля: переменные, константы, типы, внешние и глобальные процедуры. Код, размещённый в стандартном модуле, может быть не связан с определенным приложением; если не использовать ссылки на модуль формы или имена элементов управления, стандартный модуль может быть использован в других приложениях.
- Модуль класса (расширение файла *.cls) является основой объектно-ориентированного программирования в Visual Basic. Модуль класса используется для создания новых объектов. Эти объекты могут иметь собственные свойства, методы и события. Фактически, форма – просто модуль класса, который может содержать элементы управления, помещенные в него, и выводить их на экран. Классы могут содержать специальные процедуры
Class_Initialize
иClass_Terminate
, которые фактически являются конструктором и деструктором.
Объектно-ориентированное программирование[]
Простое взаимодействие между объектами является одним из базовых составляющих парадигмы Visual Basic. Сам объект называется экземпляромкласса. Объектная модель VB предоставляет различные классы для работы с формами, элементами управления, буфером обмена, коллекциями, экраном и т.д. Для взаимодействия с другими объектами, класс предоставлят разработчику интерфейс, состоящий из свойств, методов и событий.
Создание нового объекта из класса возможно ранним или поздним связыванием. Для раннего связывания используется ключевое слово New
перед именем класса. Для позднего связывания используется функция CreateObject
возвращающая ссылку на созданный объект. Присваивание ссылок осуществляется в переменные с типом Object
, используя оператор Set
. Доступ к методам и свойствам класса происходит через оператор — точку .
, который ставится сразу после имени переменной объектного типа. Если класс содержит события, то переменные объявляются с ключевым словомWithEvents
, тем самым будут доступны процедуры обработки событий.
Пример показывает взаимодействие программы с библиотекой Microsoft Scripting Runtime, предоставляющая объекты для работы с файловой системой:
Public Sub Main() Dim objFSO As New FileSystemObject 'Создаём экземпляр класса, используя оператор New Dim objWindows As Folder Set objWindows = objFSO.GetFolder(Environ("SYSTEMROOT")) 'Вызываем метод класса GetFolder и присваиваем ссылку на полученный объект MsgBox "Папка Windows: " & objWindows.Path 'Читаем свойства класса MsgBox "Дата создания: " & Format(objWindows.DateCreated, "YYYY-MM-DD H:mm:ss") Dim sTextFilePath As String Dim objTS As TextStream sTextFilePath = objFSO.BuildPath(Environ("TEMP"), "Тестовый файл.txt") 'Метод с двумя параметрам возвращает значение типа String Set objTS = objFSO.CreateTextFile(sTextFilePath, True) objTS.Write "Привет, Википедия!" objTS.Close objFSO.DeleteFile sTextFilePath, True Set objFSO = Nothing 'Присваивая Nothing, происходит освобождение ссылки, и объект может вызвать процедуру деструктора Set objWindows = Nothing 'VB автоматически вызывает деструктор, если на объект больше не ссылаются Set objTS = Nothing End Sub
Visual Basic позволяет разработчику самому создавать новые классы. В отличии от других языков программирования, таких как Java и C++, Visual Basic имеет неполную поддержку ООП.
Как известно, абстрактный класс необходим, чтобы предоставить шаблон для интерфейса другим классам. В Visual Basic классы имеющие члены класса, но не содержащие реализацию, можно использовать в качестве абстрактных классов, но фактически они ими не являются. Из классов Visual Basic всегда можно создать объекты, даже если они не содержат кода[2]
Принцип инкапсуляции действует в Visual Basic. Чтобы разграничить доступ к членам класса, служат модификаторы Public
, Private
и Friend
, используемые при описании процедур, функций, констант, переменных и пользовательских типов.
Наследование реализации не поддерживается. Visual Basic обеспечивает только поддержку наследования интерфейса через оператор Implements
. При наследовании интерфейса любой класс может действовать как базовый класс интерфейса. Вообще любой класс, может выступать как базовый класс интерфейса.
Полиморфизм обеспечивается только через интерфейсы, т.к. наследование VB не поддерживает. Реализация полиморфизма показана на примере классов Автомобиль и Самолёт реализующие интерфейс класса Транспорт.
'Класс ITransport.cls Public Function GetMaxSpeed() As Long End Function
'Класс CAuto.cls Implements ITransport 'Наследуем интерфейс Private Function ITransport_GetMaxSpeed() As Long 'Реализация метода ITransport_GetMaxSpeed = 240 End Function
'Класс CFly.cls Implements ITransport Private Function ITransport_GetMaxSpeed() As Long ITransport_GetMaxSpeed = 700 End Function
'Стандартный модуль Program.bas Option Explicit Public Sub Main() Dim T As ITransport 'Объявляем переменную с типом ITransport Set T = New cAuto WhatTransportSpeed T 'Передаем ссылку в процедуру, которая вызовет нужный метод класса, в зависимости от реализации Set T = New cFly WhatTransportSpeed T End Sub 'Функция имеет аргумент, который принимает ссылку на объект, реализующий интерфейс ITransport Public Sub WhatTransportSpeed(Transport As ITransport) MsgBox "Максимальная скорость: " & Transport.GetMaxSpeed() End Sub
Дизайнер форм[]
Редактор кода[]
Редактор кода преставляет собой текстовый редактор с дополнительными функциями для простого и быстрого ввода исходного кода:
- Подсветка синтаксиса исходного кода.
- Горизонтальное разделение окна на 2 панели.
- Показ всего исходного кода или конкретной процедуры.
- Перечислений объектов используемых в программе со списком событий, которые разработчик может обработать.
- Автоизменение регистра букв. Первая буква ключевых слов указываются в верхнем регистре, регистр имён переменных автоматически изменяется, чтобы соответствовать регистру, которое было задано при их объявленении.
- Автодополнение названий функций, процедур, переменных используя IntelliSense.
- Проверка кода на наличие синтаксических ошибок.
- Умная табуляция блоков
Отладка[]
Visual Basic 6.0 в режиме отладки
Интегрированная среда разработки предоставляет программисту богатые возможности для отладки программ. Одно из преимуществ Visual Basic, заключается в возможности изменять в значительной мере исходный код программы без её полной перекомпиляции и перезапуска. Во время отладки процедур, разработчику предоставляется возможность перемещать маркер, указывающий на текущую выполняемую инструкцию, как вперёд — пропуская часть кода, так и назад — заставляя VB заново исполнять уже отработанные инструкции.
Кроме всего прочего, среда предоставляет инструменты для отладки, такие как окно немедленного выполнения (Immediate Window), окно локальных переменных (Locals Window), окно наблюдения (Watch Window), окно просмотрастека вызовов процедур (Call Stack). Такие продвинутые средства позволяют программисту более глубже проводить анализ исследуемого алгоритма в отлаживаемом приложении.
Visual Basic переходит в режим отладки при выполнении одного из условий:
- При выполнении инструкции
Stop
- При выполнении инструкции, на которую установлена точка останова (брейкпоинт)
- При возникновении ошибки, для которой не найден подходящий обработчик ошибок
- При нажатии горячих клавиш
Ctrl + Break
Компиляция[]
В комплекте с интегрированной средой разработки идёт компилятор в P-Code (P-код), нативный Back-End x86-совместимый компилятор и линковщик. Наличие двух компиляторов позволяет отнести Visual Basic как компилируемому, так и интерпретируемому языку. Вне зависимости от того, какой из компиляторов будет выбран, приложения требуют для своего запуска виртуальную машину времени выполнения Visual Basic, которая представляет собой библиотеку MSVBVMXX.DLL, где XX-версия языка[3]
- P-код позволяет выполняться приложению на аппаратно-независимой виртуальной машине, которая в реальном времени будет транслировать псевдо-код программы в машинный код процессора. Теоретически, такой подход позволяет осуществить переносимость приложений на новые аппаратные платформы не требуя доработки исходного кода самих программ. Одно из главных преимуществ, связанное с компиляцией в P-Code, является «горячее» изменение исходого кода в режиме отладки. Visual Basic, находясь в режиме отладки, всегда компилирует программу в P-код, далее выполнение может быть приостановлено, программистом вносятся значительные изменения в исходный код, а затем продолжается выполнение: полная перекомпиляция и перезапуск приложения при этом не требуется. Компилятор создаёт исполняемый файл в формате PE, но вместо инструкций для реального процессора, содержится код инициализирующий виртуальную машину и байт-код приложения. Главным недостатком компиляции в P-код является низкая скорость выполнения программ, т.к. большая часть времени тратится на трансляцию программы в машинный код.
- Native-компиляция стала возможна с выходом Visual Basic 5.0. Данный компилятор позволяет создавать высокопроизводительный код по сравнению с приложениями, которые были собраны в P-код. В машинный код компилируются большинство инструкций: арифметические операции, управляющие конструкции, но такие действия, как вызов встроенных функций языка, работа со строками, обработка ошибок будут выполняться библиотекой времени выполнения Visual Basic. Таким образом, несмотря на компиляцию в машинный код, приложение для своего выполнения будет требовать виртуальную машину Visual Basic. Также частый вызов функций из библиотеки времени выполнения приводит к ухудшению скорости выполнения приложения. Но несмотря на все недостатки, Native-компилятор обеспечивает приемлимую скорость выполнения кода. Компилятор содержит несколько параметров оптимизации. На вкладке компиляции проекта можно отключить некоторые проверочные операции: выход за пределы массива, целочисленное переполнение и др. Правильная настройка этих параметров позволяет разработчику получить дополнительный прирост производительности в разрабатываемом приложении.
Развертывание[]
Совместно с Microsoft Visual Basic 6.0 поставляется Package & Deployment Wizard[4], предназначенный для создания инсталляционных пакетов на основе проекта Visual Basic. В сравнении со своим хорошо известным предшественником — Setup Wizard, P&D Wizard предоставляет новую функциональность, но, к сожалению, новый инструмент содержит некоторые ошибки. Одной из проблем данного приложения является ошибка преобразования даты, если локаль установленная в операционной системе пользователя будет отличной от Американской. Существуют сторонние приложения, которые предоставляют более продвинутые средства для управления установочными пакетами.
Также возможен вариант установки VB приложений простым копированием, который сводится к выполнению нескольких шагов:
- Если в системной папке операционной системы отсутствует файл времени выполнения приложений Visual Basic (MSVBVM60.DLL), то необходимо предварительно его скопировать в неё.
- Если приложение содержит нестандартные элементы управления, такие как ActiveX Controls, то предварительно необходимо их скопировать в системную директорию и произвести регистрацию в системном реестре Microsoft Windows. Регистрацию компонент можно автоматизировать, например, выполнить команду
regsvr32.exe
и передать полный путь к файлу или программным способом, непосредственно вызвав методDllRegisterServer
, который реализует COM-совместимая компонента. - Создать программную папку, скопировать исполняемый файл, при необходимости создать ярлык приложения на рабочем столе пользователя.
Дополнительные возможности[]
ActiveX (Элементы управления OCX)[]
Начиная с версии VB 5.0 разработчику предоставляется возможность не только использовать готовые компоненты ActiveX, но и создавать свои. VB берёт на себя всю работу по созданию вспомогательного кода, который предназначен для регистрации информации о компоненте в системном реестре, реализации интерфейса IDispatch, создания уникальных GUID, используемых в качестве идентификаторов для классов (CLSID), интерфейсов (IID) и библиотек типов (LIBID). Благодаря такому подходу от программиста потребуется только создать классы с необходимым функционалом.
Создание новых GUID класса и интерфейса зависит от установленного параметра совместимости на вкладке свойств проекта. Он может принимать одно из трех состояний:
- Без совместимости — Visual Basic создает новые идентификаторы интерфейса и класса каждый раз при построении или компиляции проекта. Каждое построение компоненты может использоваться только с приложениями, созданными для работы с конкретной версией этой компоненты, т.е. если имя класса и проекта не будет изменено во время компиляции, то сгенерируются новые идентификаторы и они перепишут информацию в реестре, таким образом приложения, ссылающиеся на старые идентификаторы, не смогут запуститься.
- Совместимость на уровне проекта — параметр предназначен для поддержания совместимости во время тестирования, чтобы после создании компоненты было поведение такое же, словно установлен параметр без совместимости.
- Двоичная совместимость — при компиляции проекта Visual Basic создает новые идентификаторы при необходимости. Сохраняются идентификаторы класса и интерфейса из предыдущих версий компоненты. Изменение реализации метода не меняет идентификаторы. Также добавление нового класса и методов не изменяет существующей интерфейс. Таким образом старые приложения могут использовать старый интерфейс компоненты, а новые приложения могут ссылаться на новую версию интерфейса. Если изменяется метод или удаляется из интерфейса, то VB предупредит о несоответствии с интерфейсом компоненты и рекомендует произвести перекомпиляцию приложений.[5]
После завершения компиляции на выходе будет двоичный файл библиотеки по спецификации COM. Данный компонент реализует как минимум 2интерфейса: IUnknown и IDispatch. Библиотека типов (TLB) будет интегрированна внутри ресурсов исполняемого файла. Также дополнительно создаются файлы с полезной информацией, такие как EXP и LIB.
Windows API (Прикладной интерфейс программирования)[]
Visual Basic предоставляет языковые средства для декларации и вызова функции из библиотек динамической компоновки (DLL). Данный механизм позволяет расширять приложения, за счёт использование дополнительных библиотек предоставляемые другими разработчиками, в том числе написанные на различных языках программирования. Один из таких наборов библиотек предоставляется операционной системой Microsoft Windows.
Общий синтаксис декларации функции и процедуры выглядит следующим образом:
[Public|Private] Declare Sub <имя_процедуры> lib "имя_динамической_библиотеки" [Alias "псевдоним"] [(параметры)] [Public|Private] Declare Function <имя_функциии> lib "имя_динамической_библиотеки" [Alias "псевдоним"] [(параметры)] [As тип_возврата]
Псевдонимы необходимо задавать в ряде случаев: использование в названии функции зарезервированных идентификаторов Visual Basic, название содержат недопустимые символы или не могут быть правильно интерпретированы средой. Вызываемые функции должны поддерживать соглашение о вызове StdCall.
При передаче параметра с типом String в функцию WINAPI, VB осуществляет автоматическую конвертацию кодировки из Unicode в ANSI, после выполнения функции, происходит обратная конвертация из ANSI в Unicode. Чтобы исключить автоматическую конвертацию строк, аргументы функции необходимо задекларировать с типом Long, и передавать указатель на строку, используя функцию StrPtr
, таким образом можно оптимизировать производительность приложения выполняющее множественные вызовы функций.
Пример вызова Windows API для получение полного пути к каталогу Windows и вывода сообщения на экран:
Private Declare Function GetWindowsDirectory Lib "kernel32.dll" Alias "GetWindowsDirectoryA" (ByVal buffer As String, ByVal nSize As Long) As Long Private Declare Function MessageBox Lib "user32.dll" Alias "MessageBoxA" (ByVal hWnd As Long, ByVal lpText As String, ByVal lpCaption As String, ByVal wType As Long) As Long Private Const MB_ICONASTERISK As Long = 64 Public Sub Main() Dim buffer As String 'Переменная в которую будет получен результат функции. Dim retLen As Long buffer = String(256, vbNullChar) lens = GetWindowsDirectory(buffer, Len(buffer)) 'Вызов функции buffer = Left(buffer, lens) MessageBox 0&, "ОС установлена в каталог: " & buffer, "Информация", MB_ICONASTERISK 'Вызов функции End Sub
Следует учесть, что вызов функций WINAPI связан с определенными внутренними соглашениями, а именно, каким образом функция будет возвращать результат, какие структуры необходимо ей передать, количество аргументов и их типы, что будет содержаться в возвращаемом значении. Разработчики используют техническую документацию, предоставляемую вместе с библиотеками, с которыми они работают, чтобы правильно задекларировать функции и структуры.
Достоинства и недостатки[]
Достоинства[]
- Высокая скорость создания приложений с графическим интерфейсом для Microsoft Windows.
- Простой синтаксис языка обеспечивает низкий порог вхождения.
- Возможность компиляции как в машинный код, так и в P-код (по выбору программиста).
- Безопасность типов обеспечивает защита от ошибок, связанных с применением указателей и доступом к памяти. Этот аспект делает Visual Basic приложения более стабильными, но также является объектом критики.
- Возможность использования большинства WinAPI функций[6] для расширения функциональных возможностей приложения. Данный вопрос наиболее полно исследован Дэном Эпплманом, написавшим книгу «Visual Basic Programmer’s Guide to the Win32 API».
Недостатки[]
- Поддержка операционных систем только семейства Windows и Mac OS X (Исключение — VB1 for DOS).
- Отсутствие полноценного механизма наследования реализации объектов[7]. Существующее в языке наследование позволяет наследовать толькоинтерфейсы, но не их реализацию.
- Практически все встроенные функции языка реализованы через библиотеку времени исполнения, которая, в свою очередь, производит много «дополнительной» работы по проверке и/или преобразованию типов, что замедляет скорость работы приложений.
Язык сильно привязан к своей среде разработки и к операционной системе Microsoft Windows, являясь исключительно инструментом написания Windows-приложений. Привязка к среде заключается в том, что существует большое количество средств, предназначенных для помощи и удобства программирования: встроенный отладчик, просмотр переменных и структур данных на лету, окно отладки, всплывающие подсказки при наборе текста программы (IntelliSense). Все эти преимущества делают бесполезным и даже невозможным использование Visual Basic вне среды разработки, например в обычном текстовом редакторе
Критика[]
- Часто критике подвергаются такие аспекты Visual Basic, как возможность отключить средства слежения за объявленными переменными, возможность неявного преобразования переменных, наличие типа данных «Variant». По мнению критиков, это даёт возможность писать крайне плохой код. С другой стороны, это можно рассматривать как плюс, так как VB не навязывает «хороший стиль», а даёт больше свободы программисту.
- Отсутствие указателей, низкоуровневого доступа к памяти, ASM-вставок, невозможность экспорта функций в нативных библиотеках, отсутствие стандартных средств разработки консольных приложений. Несмотря на то, что парадигма Visual Basic позволяет среднему VB-программистуобходиться без всего этого, перечисленные вещи также нередко становятся объектами критики. И хотя, используя недокументированные возможности и определённые ухищрения, всё это можно реализовать и на VB (например, с помощью функций для получения указателей
VarPtr
,StrPtr
иObjPtr
); пользоваться этими трюками иногда сложнее, чем, например, на С++.
Однако стоит отметить, что все недостатки языка вытекают из его основного достоинства — простоты разработки графического интерфейса. Поэтому многие программисты используют Visual Basic для разработки интерфейса пользователя, а функциональность программы реализуют в виде динамически подключаемых библиотек (DLL), написанных на других языках (например, C++).
Реализации и диалекты[]
Visual Basic for Applications (VBA)[]
Основная статья: VBA
Это среда разработки практически не отличается от классического Visual Basic, которая предназначена для написания макросов и других прикладных программ для конкретных приложений. Наибольшую популярность получил благодаря своему использованию в пакете Microsoft Office. Широкое распространение Visual Basic for Applications в сочетании с изначально недостаточным вниманием к вопросам безопасности привело к широкому распространению макровирусов.
Особенности:
- Не позволяет компилировать приложения в исполняемые файлы EXE/DLL
- Для выполнения приложений в современной среде требуются корректные настройки безопасности макросов в приложении, которое является хостомдля VBA
- Отсутствуют некоторые объекты, такие как:
Clipboard
,App
,Form
,Timer
,Data
. Вместо них предоставляются другие классы, реализованные в объектной модели конкретного приложения.
Visual Basic Scripting Edition (VBScript)[]
Основная статья: Visual Basic Scripting Edition
Скриптовый язык, являющийся несколько усечённой версией обычного Visual Basic. Используется в основном для автоматизации администрирования систем Microsoft Windows, а также для создания страниц ASP и сценариев для Internet Explorer.
Особенности:
- Отсутствуют операторы для работы с файловой системой
- Нет возможности объявить переменную с конкретным типом данных. Все переменные имеют тип
Variant
- Возможно использовать только позднее связывание для работы с внешними библиотеками
- Компиляция кода в исполняемые файлы отсутствует
- Исходный код хранится в текстовых файлах с расширением
.vbs
или.vbe
eMbedded Visual Basic (eVB)[]
Данный инструмент используется для разработки программного обеспечения под операционные системы Windows CE и Windows Mobile. Включает в себя интегрированную среду разработки, отладчик и эмулятор для тестирования приложений. eMbedded Visual Basic базируется не на полнофункциональном языке программирования Visual Basic, а на языке описания сценариев Visual Basic Scripting Edition. Приложения компилируются в P-код, а исполняемые файлы имеют расширение VB
, которые ассоциированы с хост-приложением.
Особенности:
- Все переменные по умолчанию относятся к виду Variant; строгий контроль типов не поддерживается
- Разработка ActiveX-элементов управления не поддерживается, но возможно использование готовых
- Ряд встроенных элементов управления Visual Basic не поддерживается, некоторые свойства отсутствуют
- Требуется наличие библиотек eMbedded Visual Basic Runtime для запуска приложений
ГЛАВА 1
1.1. Зачем программировать в Microsoft Office
Ответ на этот вопрос прост: чтобы не делать лишней работы. Программирование в Office — это, прежде всего, уменьшение количества повторяющихся действий (и ручной работы, которая для этого требуется). Вот примеры некоторых типичных ситуаций, когда использование программирования просто напрашивается:
вам с определенной периодичностью приходится изготавливать документы, очень похожие друг на друга: приказы, распоряжения в бухгалтерию, договоры, отчеты и т. п. Часто информацию можно взять из базы данных, тогда использование программирования может дать очень большой выигрыш во времени. Иногда данные приходится вводить вручную, но и тогда автоматизация дает выигрыш во времени и в снижении количества ошибок;
разновидность такой же ситуации: одни и те же данные нужно использовать несколько раз. Например, вы заключаете договор с заказчиком. Одни и те же данные (наименование, адрес, расчетный счет, номер договора, дата заключения, сумма и т. п.) могут потребоваться во многих документах: самом договоре, счете, счете-фактуре, акте сдачи выполненных работ и т. д. Логично один раз ввести эту информацию (скорее всего, в базу данных), а затем автоматически формировать (например, в Word) требуемые документы;
когда нужно сделать так, чтобы вводимые пользователем данные автоматически проверялись. Вероятность ошибки при ручном вводе данных зависит от многих факторов, но, согласно результатам некоторых исследо-
Основыпрограммирования в Microsoft Office |
13 |
ваний, она в среднем составляет около 2%. «Вылавливать» потом такие ошибки в уже введенных данных — очень тяжелый труд, поэтому лучше сразу сделать так, чтобы они не возникали.
В общем, любое действие, которое вам приходится повторять несколько раз, — это возможный кандидат на автоматизацию. Например, занесение сотен контактов в Outlook, или замена ресурса в десятках проектов Project, или анализ информации из базы данных за разные периоды в таблице Excel — это те ситуации, когда знание объектных моделей приложений Office спасет вас от нескольких часов или даже дней скучного труда.
Конечно, есть еще практиканты и аналогичный бесплатный трудовой ресурс, но хочется ли вам потом заниматься еще и поиском ошибок за ними? Кроме того, программирование несет и другие преимущества для сотрудника, который использует его в работе:
повышается авторитет сотрудника в глазах руководства и других коллег;
если программы этого сотрудника активно используются на предприятии (им самим или другими работниками), то этим самым он защищает себя от сокращений, снижения зарплаты и т. п., ведь поддерживать и изменять программы в случае необходимости будет некому.
1.2. Что такое язык VBA
Поскольку эта книга предназначена для обычных пользователей, то без объяснения этого вопроса не обойтись. Формальное определение такое.
VBA (Visual Basic for Applications) — это диалект языка Visual Basic, расши-
ряющий его возможности и предназначенный для работы с приложениями Microsoft Office и другими приложениями от Microsoft и третьих фирм.
В принципе, при программировании в Office можно вполне обойтись и без языка VBA. Подойдет любой COM-совместимый язык, например: обычный
Visual Basic, VBScript, Java, JScript, C++, Delphi и т. п. Можно использовать и
.NET-совместимые языки программирования: VB.NET, C# и т. п. Вам будут доступны все возможности объектных моделей приложений Office. Например, если сохранить следующий код в файле с расширением vbs и запустить его на выполнение, то будет запущен Word, в котором откроется новый документ и будет впечатан текст:
Dim oWord
Set oWord = CreateObject(«Word.Application») oWord.Visible = true
oWord.Documents.Add
oWord.Selection.TypeText («Привет от VBScript»)
Тем не менее, VBA — это обычно самый удобный язык для работы с приложениями Office. Главная причина проста — язык VBA встроен в приложения Office, и код на языке VBA можно хранить внутри документов приложений Office: в документах Word, книгах Excel, презентациях PowerPoint и т. п. Конечно же, этот код можно запускать из документов на выполнение, поскольку среда выполнения кода VBA (на программистском сленге — хост) встроена внутрь этих приложений.
В настоящее время VBA встроен:
во все главные приложения Microsoft Office — Word, Excel, Access, PowerPoint, Outlook, FrontPage, InfoPath;
вдругие приложения Microsoft, такие как Visio и Project;
вболее 100 приложений третьих фирм, например, в CorelDRAW и CorelWordPerfect Office 2000, AutoCAD и т. п.
Но есть также и множество других преимуществ.
VBA — универсальный язык. Освоив его, вы не только получите ключ ко всем возможностям приложений Office и других, перечисленных ранее, но и будете готовы к тому, чтобы:
•создавать полноценные приложения на Visual Basic (поскольку эти языки — близкие родственники);
•использовать все возможности языка VBScript (это вообще «урезанный» VBA). В результате в вашем распоряжении будут универсальные средства для создания скриптов администрирования Windows, Web-
страниц (VBScript в Internet Explorer), Web-приложений ASP, для при-
менения в пакетах DTS и заданиях на SQL Server, а также для создания серверных скриптов Exchange Server и многое-многое другое.
VBA изначально был ориентирован на пользователей, а не на профессиональных программистов (хотя профессионалы пользуются им очень активно), поэтому создавать программы на нем можно быстро и легко. Кроме того, в Office встроены мощные средства, облегчающие работу пользователя: подсказки по объектам и по синтаксису, макрорекордер и т. п.
При создании приложений на VBA вам, скорее всего, не придется заботиться об установке и настройке специальной среды программирования и наличии нужных библиотек на компьютере пользователя — Microsoft Office есть практически на любом компьютере.
Несмотря на то, что часто приложения VBA выполняются медленнее, чем бы вам хотелось, они нересурсоемки и очень хорошо работают, например, на сервере терминалов. Но, как правило, для программ на VBA особых требований на производительность и не ставят: для написания игр, драй-
Основыпрограммирования в Microsoft Office |
15 |
веров, серверных продуктов он не используется. По моему опыту, возникающие проблемы с производительностью VBA-приложений — это чаще всего не проблемы VBA, а проблемы баз данных, к которым они обращаются. Если проблемы действительно в VBA (обычно тогда, когда вам требуется сложная математика), то всегда есть возможность написать важный код на C++ и обращаться к нему как к обычной библиотеке DLL или встраиваемому приложению (Add-In) для Word, Excel, Access и т. п.
Программы на VBA по умолчанию не компилируются, поэтому вносить в них исправления очень удобно. Не нужно разыскивать исходные коды и перекомпилировать программы.
В среде программистов-профессионалов считается, что быстрее всего научиться создавать профессиональные приложения можно именно при помощи VBA и объектов приложений Office. Другие языки программирования (C++, Java, Delphi) придется осваивать намного дольше, а их возможности во многом избыточны для большинства повседневных задач, которые встречаются на любом предприятии. Кроме того, использование возможностей объектов Office (графического интерфейса, средств работы с текстом, математических функций и т. п.) позволит резко снизить трудоемкость при создании приложений.
1.3. Макрорекордер: быстрое создание макросов
В большинство программ Microsoft Office (исключая Access и FrontPage)
встроено замечательное средство, которое позволит вам создавать программы, вообще ничего не зная о программировании. Это средство называется макрорекордером.
Макрорекордер, как понятно из его названия, — это средство для записи макросов. Макрос — всего лишь еще одно название для VBA-программы, а макрорекордер — средство для его автоматического создания.
Приложения Microsoft Office 2003 по умолчанию настроены так, что не позволяют запускать макросы. Поэтому перед тем, как приступать к созданию макросов,
в меню Сервис | Макрос | Безопасность переставьте переключатель Уровень безопасности в положение Средняя или Низкая, а потом закройте и снова откройте данное приложение. Это потребуется сделать только один раз в начале работы.
Принцип работы макрорекордера больше всего похож на принцип работы магнитофона: мы нажимаем на кнопку — начинается запись тех действий,
которые мы выполняем. Мы нажимаем на вторую кнопку — запись останавливается, и мы можем ее проиграть (т. е. повторно выполнить ту же последовательность действий).
Конечно, макрорекордер позволяет написать только самые простые VBAпрограммы. Однако и он может принести много пользы. Например, можно «положить» на горячие клавиши те слова, словосочетания, варианты оформления и т. п., которые вам часто приходится вводить (должность, название фирмы, продукт, ФИО директора и ответственного исполнителя и т. д.), этим вы сэкономите много времени.
Как показывает опыт, подавляющее большинство обычных пользователей и не подозревает о существовании макрорекордера, несмотря на то, что его применение позволило бы сэкономить им массу времени.
Перед созданием макроса в макрорекордере:
необходимо очень тщательно спланировать макрос, хорошо продумав, что вы будете делать и в какой последовательности. Если есть возможность, определите подготовительные действия. Например, если нужно вставить текущую дату в начало документа, может быть, имеет смысл первой командой макроса сделать переход на начало документа (<Ctrl>+<Home>);
посмотрите, нет ли готовой команды, которую можно сразу назначить клавише или кнопке на панели инструментов без создания макроса. Сделать это можно при помощи меню Сервис | Настройка. С вкладки Команды можно перетащить нужную команду на требуемую панель управления, и, нажав на этой же вкладке кнопку Клавиатура, в окне Настройка клавиатурыназначить длякоманды нужнуюкомбинацию клавиш;
если вы собираетесь при помощи макроса менять оформление текста, то правильнее вначале создать новый стиль с вашим оформлением, а потом уже применить этот стиль к тексту. В этом случае опять-таки можно обойтись без макроса, просто назначив стиль комбинации клавиш. Делается это при помощи того же диалогового окна Настройка клавиатуры, как и в предыдущем случае.
Чтобы создать макрос в макрорекордере (для тех программ Microsoft Office, для которых это средство предусмотрено, например, Word, Excel, PowerPoint, Project):
1.В меню Сервис | Макрос выберите команду Начать запись. В открывшемся окне Запись макроса (рис. 1.1) вам потребуется определить:
•Имя макроса. Правило такое: имя не должно начинаться с цифры, не должно содержать пробелы и символы пунктуации. Максимальная длина в Excel — 64 символа, в Word — 80 символов. Можно писать порусски;
Основыпрограммирования в Microsoft Office |
17 |
•будет ли макрос назначен кнопке на панели управления или комбинации клавиш. Выполнить это, а также задать другие средства для вызова макроса можно и потом — об этом будет рассказано в следующем разделе;
•где сохранить макрос. В Word в вашем распоряжении текущий файл и шаблон для всех вновь создаваемых документов — Normal.dot, в Excel — текущая книга, возможность создать макрос одновременно с созданием новой книги и личная книга макросов PERSONAL.XLS (макросы из этой скрытой книги будут доступны во всех книгах). Подробнее про то, где может храниться программный код, мы поговорим в
разд. 2.2;
•Описание. В это поле лучше ввести информацию о том, для каких целей создается этот макрос — это подарок не только для других пользователей, но и для себя (через несколько месяцев).
Рис. 1.1. Диалоговое окно Запись макроса
2.После нажатия кнопки OK или назначения кнопки или клавиатурной комбинации начнется запись макроса. Указатель мыши при этом примет вид магнитофонной кассеты и появится маленькая панель Остановить запись. На ней всего две кнопки — Остановить запись и Пауза. Если вы случайно закрыли эту панель, остановить запись можно через меню Сер-
вис | Макрос | Остановить запись.
3.Самый простой способ запустить макрос, которому не назначена кнопка или клавиатурная комбинация, — в меню Сервис выбрать Макрос | Макросы (или нажать комбинацию клавиш <Alt>+<F8>), в открывшемся окне
Макрос (см. рис. 1.2) в списке выбрать нужный макрос и нажать кнопку Выполнить. Из этого же окна можно просматривать и редактировать макросы, удалять или перемещать их и т. п.
Если макросов создано много, то получить список всех назначений клавиш (включая назначения для встроенных макросов Word) можно при помощи меню Сервис | Макрос | Макросы, затем в окне Макрос в списке Макросы из выбрать Команд Word, а в списке Имя выбрать макрос ListCommands и нажать кнопку Выполнить. В ответ на приглашение нужно выбрать Текущие настройки меню и клавиш (иначе будет выведен полный список команд Word на 26 страниц). В ваш документ будет вставлена таблица с текущими назначениями клавиш, которую можно распечатать.
Если у вас уже есть значительное количество созданных при помощи макрорекордера макросов, то после освоения языка VBA имеет смысл подумать над ними и, может быть, внести изменения. Чаще всего стоит обратить внимание на следующие моменты:
если в вашем макросе повторяются какие-либо действия, возможно стоит организовать цикл;
может быть, есть смысл в ходе выполнения уточнить что-либо у пользователя (при помощи встроенной функции VBA InputBox() или элементов управления);
чтобы в ходе выполнения макроса не возникало ошибок, можно реализовать в нем проверку текущих условий.
Как все это сделать, будет рассказано в следующих главах.
И еще один очень важный момент, связанный с макрорекордером. Помимо того, что он позволяет создавать простенькие программы, пригодные для самостоятельного использования без всяких доработок, макрорекордер — это еще и ваш разведчик в мире объектных моделей приложений Office. Опытные разработчики часто пользуются им для того, чтобы понять, какие объекты из огромных объектных моделей приложений Office можно использовать для выполнения тех или иных действий.
Приведу пример: вам нужно автоматизировать создание диаграмм в Excel. Поскольку в русской версии Excel для создания диаграммы вручную вы используете команду Вставка | Диаграмма, то, скорее всего, в справке по VBA вы начнете в первую очередь искать объект Diagram. И вы его найдете и, возможно, потратите определенное время на его изучение, прежде чем поймете, что это не та диаграмма! Объект Diagram представляет то, что в русской версии Excel называется «Схематическая диаграмма» (доступна из того же меню Вставка), а обычная диаграмма — это объект Chart. А вот если бы вы пустили вперед разведчика (т. е. создали бы диаграмму с записью в макрорекорде-
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
- #
- #
- #
- #
- #
- #
- #
- #
- #
- #
- #
Слайд 1
Visual basic for applications. История развития языка.
Слайд 2
Понятие Visual Basic – объектно-ориентированный язык программирования (ООП), разработанный корпорацией Microsoft. ООП – модель разработки программных систем, в которых приложения состоят из объектов. Объекты — это сущности, у которых есть свойства и поведение. Обычно объекты являются экземплярами какого-нибудь класса. Например, в игре может быть класс Character (персонаж) , а его экземплярами будут hero или npc . Свойства — это данные, которые связаны с конкретным объектом: Пример свойств? Поведение объекта определяется с помощью методов — специальных блоков кода, которые можно вызывать из разных частей программы. Например, у того же объекта Character могут быть следующие методы: идти; атаковать; говорить; подобрать; выбросить; использовать. Технологии VBA , основаны на фундаментальных понятиях: ОБЪЕКТ, СВОЙСТВА, СОБЫТИЯ и МЕТОДЫ ( Object , Property , Event and Methods ),
Слайд 3
Такую модель используют многие популярные языки: C#; Java ; Python ; JavaScript ; PHP; Kotlin ; Swift ; Objective -C; C++.
Слайд 4
Плюсы и минусы ООП Плюсы Минусы Легко читается. Не нужно выискивать в коде функции и выяснять, за что они отвечают. Потребляет больше памяти. Объекты потребляют больше оперативной памяти, чем примитивные типы данных. Быстро пишется. Можно быстро создать сущности, с которыми должна работать программа. Снижает производительность. Многие вещи технически реализованы иначе, поэтому они используют больше ресурсов. Проще реализовать большой функционал. Так как на написание кода уходит меньше времени, можно гораздо быстрее создать приложение с множеством возможностей. Сложно начать. Парадигма ООП сложнее функционального программирования, поэтому на старт уходит больше времени. Меньше повторений. Не нужно писать однотипные функции для разных сущностей
Слайд 5
Visual Basic for application — немного упрощённая реализация языка программирования Visual Basic , встроенная в линейку продуктов Microsoft Office (включая версии для Mac OS ), а также во многие другие программные пакеты, такие как AutoCAD , SolidWorks , CorelDRAW , WordPerfect и ESRI ArcGIS . Visual Basic сочетает в себе процедуры и элементы объектно-ориентированных и компонентно-ориентированных языков программирования. Даже несмотря на то, что появился VB более 50 лет назад, он до сих пор с успехом используется для решения определенных задач. К примеру, с его помощью благодаря автоматической реализации некоторых механизмов можно быстро разрабатывать приложения баз данных для операционных систем от Microsoft Windows . Visual Basic отличается от других версий языка Basic тем, что это визуальное программирование. В более старых версиях этого языка такого не было. Мы составляли программу, не зная, что у нас в итоге получится, и как всё это будет выглядеть. В Visual Basic пользуясь элементами визуального проектирования мы получаем образ нашего проекта какой нам нужен.
Слайд 6
Из истории возникновения Язык Basic был разработан профессорами Дартмутского колледжа Дж.Кемени и Т.Курцом в 1965 году как средство обучения и работы непрофессиональных программистов. (Дартмутский колледж в штате Нью- Гампшир , США, был создан в середине 18 века, это одно из старейший высших заведений Америки). Его назначение определено в самом названии, которое является аббревиатурой слов Beginner’s All-purpose Symbolic Instruction Code (многоцелевой язык символических инструкций для начинающих) и при этом в дословном переводе означает «базовый». Примечание. Раньше языки программирования писались обязательно строчными буквами — BASIC, FORTRAN. В 1990 году Международная организация стандартов приняла решения, что они пишутся как обычные имена собственные — строчной является только первая буква. Basic в основном применялся на мини — и микроЭВМ , которые в 70-е годы имели оперативную память, объем которой кажется сегодня просто нереальным (4-32 тысяч байт). Резкое развитие систем на основе Basic началось с появлением в начале 80-х годов персональных компьютеров, производительность и популярность которых растет вот уже двадцать лет невиданными темпами. В конце 80-х годов насчитывалось около десятка систем Basic различных фирм- разработчиков. Однако главная борьба шла между QuickBasic (компания Microsoft ) и TurboBasic ( Borland ). Вообще-то, конкуренция между этими двумя разработчиками средств программирования шла по целому спектру языков Basic , Pascal и C. И результатом ее в 1989 году стало неявное мировое соглашение, когда Microsoft отказалась от дальнейшей поддержки Pascal , Borland — Basic .
Слайд 7
Язык BASIC создавался для выполнения учебных задач, при которых обучающиеся могли бы использовать простые алгоритмы для освоения навыков программирования. Данный язык вывел образование на новый уровень, а программисты начали соревноваться между собой, создавая все новые и новые диалекты. В число людей, начавших свою профессиональную карьеру с использования BASIC, входил Билл Гейтс, который в возрасте 13 лет написал на нем свою первую программу. В 20 лет он вместе с Полом Алленом получал свои дивиденды от реализации версии Altair BASIC. В 80-х годах популярность BASIC стала постепенно снижаться. Разрабатываемые в то время языки уже не имели столь сложного синтаксиса, а их спектр возможностей становился все шире. Лишь Microsoft продолжал выпускать разновидности BASIC, сначала создав QBasic , а затем и Visual Basic . На первых порах версии Microsoft Visual Basic не были столь популярны. Дело в том, что они практически не отличались от QBasic . Исключениями являлись разве что графический интерфейс и подсветка синтаксиса. Но Microsoft внесли существенные коррективы в версию 3.0. Комплектация Professional позволяла разработчикам взаимодействовать с базой данных Access , а благодаря графическим возможностям с языком смогли работать даже те люди, которые не имели навыков программирования. Плюс ко всему, увеличилась скорость работы, а установка ПО стала значительно проще. В 1995 году появилась Windows 95, что позволило Visual Basic 4.0. выйти в лидеры. Был создан полноценный компилятор, появилась возможность разрабатывать 16 и 32-ядерные приложения, и повысилось быстродействие.
Слайд 8
Основные разновидности Visual Basic Классический Visual Basic ( Visual Basic Classic ) Данный язык в значительной степени привязан к своей среде разработки и к OS Windows , из-за чего он может использоваться лишь в качестве инструмента создания приложений для этой операционной системы. Привязка к среде означает наличие множества средств, помогающих и упрощающих процесс программирования. В список таких средств можно отнести: просмотр переменных и структур данных на лету, встроенный отладчик, окно отладки, всплывающая подсказка при наборе текста программы ( IntelliSense ). Вследствие этого применение Visual Basic вне среды разработки, скажем, в стандартном текстовом редакторе, не только неоправданно, но и невозможно.
Слайд 9
Основные разновидности Visual Basic Visual Basic for Applications (VBA) Эта разновидность Visual Basic почти не отличается от обычного варианта и разрабатывалась в целях написания макросов и прочих прикладных программ для конкретных приложений. Широкое распространение данный язык получил за счет применения в пакете Microsoft Office . Стоит отметить, что из-за большой популярности Visual Basic for Applications и отсутствия должного контроля безопасности появилось множество макровирусов.
Слайд 10
Макрос – действия или набор действий, которые можно выполнить сколько угодно раз. Программный алгоритм действий, записанных пользователем, предназначенный для автоматизации рутинных действий. Например, создать макрос для изменения формата ячеек или вычисления какой-нибудь формы.
Слайд 11
Основные разновидности Visual Basic Visual Basic Scripting Edition ( VBScript ) Можно сказать, что это немного урезанная версия стандартного Visual Basic . Данный скриптовый язык, как правило, применяется в целях автоматизации администрирования систем на базе Windows , при создании страниц ASP и сценариев для Internet Explorer .
Слайд 12
Основные разновидности Visual Basic Visual Basic .NET После выпуска Visual Basic 6.0. был смещен вектор развития технологии. При использовании Visual Basic .NET уже нельзя работать с помощью старых методов, поэтому его можно смело назвать отдельным языком. Это относится и ко всем остальным языкам для платформы .NET. Visual Basic не столь распространен как C++, C# и Java , но вместе с тем он имеет довольно большой потенциал и широкий спектр возможностей. При использовании VB.NET разработчики могут создавать различные типы приложений, включая простые консольные утилиты, графические программы, игровые приложения и сложные нагруженные веб-сервисы При этом осваивать язык лучше всего с VBA. Дело в том, что он более прост, подразумевает разработку всем известных продуктов и ограничен в области применения, что смещает акцент в обучении именно на язык. Работа с Visual Basic .NET труднее, но интереснее. Для программирования будет необходимо больше времени и справочных ресурсов, однако у данного языка гораздо больше возможностей.
Слайд 13
Особенности Этот язык очень сильно привязан к своей среде разработки и к операционной системе Windows , являясь исключительно инструментом написания Windows -приложений. Привязка к среде заключается в том, что существует большое количество средств, предназначенных для помощи и удобства программирования: встроенный отладчик, просмотр переменных и структур данных на лету, окно отладки, всплывающая подсказка при наборе текста программы ( IntelliSense ). Все эти преимущества делают бесполезным и даже невозможным использование Visual Basic вне среды разработки, например в обычном текстовом редакторе. Microsoft Visual Basic 5.0 — это мощная система программирования, позволяющая быстро и эффективно создавать приложения для Microsoft Windows . Позволяет резервировать переменные, с указанием размера и без, работать с различными типами данных, использовать константы, работать с математическими операторами и функциями, использовать дополнительные операторы. Предусмотрено использование операторов циклов For .. Next , Do , объектов типа “ таймер” (невидимый секундомер в программе). Точность установления времени в программе составляет 1 миллисекунду, или 1/1000 сек. Microsoft Visual Basic 6.0 представляет собой интегрированную среду разработки — IDE ( Integrated Development Environment ). Это означает, что в Visual Basic 6 интегрирован набор инструментов, облегчающих и значительно ускоряющих процесс разработки готового приложения. Такая реализация языка Visual Basic 6 с полным правом позволяет отнести его к средствам быстрой разработки приложений — RAD ( Rapid Application Development ) и ставит практически в один ряд с такими средствами разработки, как Visual C++, Delphi и другими. Простота и мощность языка Visual Basic 6 позволили сделать его встроенным языком для приложений Microsoft Office . Многие независимые разработчики, как например известная своими программами в области бухгалтерского учета фирма «1С», приобретают лицензии на использование языка.
Слайд 14
Особенности Visual Basic Работа с Visual Basic предполагает использование визуальных компонентов и контролов , определение атрибутов и действий для компонентов, создание дополнительного кода для расширения функциональных возможностей. Благодаря определенным по умолчанию значениям и действиям для компонентов появляется возможность разработать простую программу без написания кода специалистом. В более ранних версиях были некоторые проблемы связанные с производительностью программ, однако нынешние компьютеры и компиляция собственного кода позволяют снизить негативное влияние этого фактора.
Слайд 15
Создание форм осуществляется способом drag and drop , что в переводе означает «перетащи и брось». Элементы управления располагаются на форме (к примеру, поля ввода, кнопки и др.). У этих элементов управления имеются собственные атрибуты и обработчики событий. Множество атрибутов предполагают возможность изменения в процессе выполнения программы, поэтому можно разрабатывать программы, которые будут динамически реагировать на действия пользователя. VB может создать исполняемые программы (EXE файлы), элементы управления ActiveX , библиотеки DLL. Но все же предназначением данного языка является создание программ под OS Windows . Есть возможность применения диалоговых окон с ограниченными функциональными возможностями для обеспечения подсказок. Управленческие элементы обеспечивают основополагающие возможности функционала программы, при этом специалист может осуществить расширение логики приложения с помощью обработчиков событий. Скажем, выпадающий список в автоматическом режиме показывает список и дает возможность выбора элемента пользователем. Обработчик событий вызывается в целях выполнения дополнительного кода в зависимости от подобранного элемента. Возможности VB
Слайд 16
Компилятор VB идет совместно с другими языками Visual Studio , такими как C, C++. Вместе с тем из-за ограничений в интегрированной среде разработки у программиста нет возможности разрабатывать определенные типы приложений. Язык применяет справочные данные для того чтобы собрать мусор. У него есть обширная библиотека сервисных объектов и объектно-ориентированная разработка. При этом VB не привязан к регистру, что и отличает его от множества других языков. Сравнение строк с одной стороны зависит от регистра, но с другой – может выполняться и без его учета.
Слайд 17
Особенности VB Более того, VB имеет еще несколько особенностей: Объединены логические и битовые операторы. Это отличает его от всех C подобных языков, например, Java и Perl . Так называемая булевская постоянная «истина» имеет числовое значение −1, а «ложь» − 0. Это обусловлено тем, что тип Boolean хранится как 16-разрядное целое число со знаком. Между ними имеется взаимосвязь, осуществляемая посредством логической операции Not . Иными словами, Истина = Не Ложь. Целые числа в автоматическом режиме конвертируются в вещественные после применения деления (/). Оператор () осуществляет деление с усечением дробной части. Массивы объявляются с определением верхней и нижней границ, точно также как и в Pascal и Fortran . Используя оператор Option Basе , можно определить нижнюю границу по умолчанию, однако такое действие может привести к путанице между программами. Нижняя граница массивов не ограничивается 0 или 1. Есть возможность установки более низких границ, тогда как в VB.NET и VBScript нижняя граница зафиксирована. VB объединен с OS Windows и COM. Для переменных, объявленных без указания типа, применяется по умолчанию тип variant . Однако после применения оператора Deftype есть возможность выставить и другой тип по умолчанию, например, DefInt , DefBool , DefVar , DefObj , DefStr и т.д. При этом тип по умолчанию можно отменить для переменной после применения специализированного символа-суффикса в имени переменной.
Слайд 18
Плюсы и минусы Visual Basic Ключевым преимуществом этого языка является крайне простой синтаксис. Иными словами, Visual Basic подходит для начинающих программистов. Вместе с тем это не является преградой для применения современных способов создания программных приложений (визуального проектирования и использования объектно-ориентированного подхода). Имеются и некоторые другие преимущества: Можно осуществлять высокоскоростную разработку приложений с графическим интерфейсом для MS Windows . Есть защита от ошибок, которые связаны с использованием указателей и доступом к памяти, за счет чего VB приложения являются более стабильными. Однако данный нюанс подвергается критике. Можно применять большинство WinAPI функций в целях увеличения функционала приложений. В книге « Visual Basic Programmer’s Guide to the Win32 API» Дэн Эпплман подробно рассматривает эту тему. Программист может выбрать компиляцию в машинный код, но и в P-код. Находясь в режиме отладки, программа постоянно компилируется в P-код, причем это не зависит от выбора. Это дает возможность делать паузу в исполнении программы для внесения существенных корректировок в исходный код, после чего продолжать исполнение. Таким образом, нет необходимости в полной перекомпиляции и перезапуске программы.
Слайд 19
Плюсы и минусы Visual Basic Поддерживаются операционные системы Windows и Mac OS X и никакие другие . Низкая скорость работы. Это объясняется тем, что почти весь список имеющихся функций языка реализован посредством библиотеки времени исполнения ( runtime library ). Данная библиотека осуществляет большое количество «излишних» действий в целях проверки и/или преобразования типов. Нет механизма наследования реализации объектов. При помощи имеющегося в VB наследования можно наследовать лишь интерфейсы (отсутствует возможность наследования их реализации). Необходимо иметь установленную msvbvmXX.dll для использования программы. При этом все вышеназванные недостатки появляются из-за наличия его ключевого преимущества – легкости разработки графического интерфейса. По этой причине множество разработчиков применяют VB в целях создания интерфейса пользователя, тогда как функциональность программы реализуется в виде динамически подключаемых библиотек (DLL), которые пишутся на другом языке (в большинстве случаев это C++).
Слайд 20
Visual basic for applications Это средство программирования, практически ничем не отличающееся от классического Visual Basic , которое предназначено для написания макросов (?) и других прикладных программ для конкретных приложений. Наибольшую популярность получил благодаря своему использованию в пакете Microsoft Office . Широкое распространение Visual Basic for Applications в сочетании с изначально недостаточным вниманием к вопросам безопасности привело к широкому распространению макровирусов. Особенности: Оператор — деление нацело, любая дробная часть отсекается. Перед выполнением операции ab a и b округляются до целого. Visual Basic for Applications (VBA, Visual Basic для приложений) — немного упрощённая реализация языка программирования Visual Basic , встроенная в линейку продуктов Microsoft Office (включая версии для Mac OS), а также во многие другие программные пакеты, такие как AutoCAD , SolidWorks , CorelDRAW , WordPerfect и ESRI ArcGIS . VBA покрывает и расширяет функциональность ранее использовавшихся специализированных макро-языков, таких как WordBasic . VBA является интерпретируемым языком. Как и следует из его названия, VBA близок к Visual Basic . VBA позволяет использовать все доступные в операционной системе COM ( Component Object Model) объекты и компоненты ActiveX . По сути, возможно создание приложения на основе Microsoft Word VBA, использующего только средства Corel Draw . В будущем Microsoft планирует заменить VBA на Visual Studio Tools for Applications (VSTA) — инструментарий расширения функциональности приложений, основанный на Microsoft .NET.
Слайд 21
Visual basic for applications Фактически, это тот же самый Classic , только немного упрощенный и адаптированный под разработку макросов и прикладного ПО для конкретных приложений. Язык программирования VBA встроен в структуру офисного пакета Microsoft Office ( Word , Excel и т.д.), а также программных продуктов от других разработчиков — например, AutoCAD , CorelDraw , SolidWorks . Основанный на стандарте Microsoft COM ( Component Object Model ), он может задействовать все имеющиеся в ОС Windows COM-компоненты и ActiveX . Иными словами, можно исключительно с помощью средств, например, CorelDraw и языка VBA создавать приложения для Microsoft Office .
Слайд 22
Соотношение Visual Basic и VBA с приложениями фирмы Microsoft VBA объединяет приложения Microsoft в рамках проектирования диалоговых прикладных приложений
Слайд 23
Алгоритмы Visual Basic Понятие алгоритма? Основные свойства алгоритма? Типы алгоритмов?
Слайд 24
При всем многообразии алгоритмов решения задач в них можно выделить три основных вида вычислительных процессов: линейный; ветвящийся; циклический.
Слайд 25
Линейный алгоритм Линейным называется такой вычислительный процесс, при котором все этапы решения задачи выполняются в естественном порядке следования записи этих этапов.
Слайд 26
Ветвление Ветвящимся называется такой вычислительный процесс, в котором выбор направления обработки информации зависит от исходных или промежуточных данных (от результатов проверки выполнения какого-либо логического условия). Алгоритм ветвления в Visual Basic и в VBA представляет оператор условного перехода .
Слайд 27
Если условие То команды1 Иначе команды2 Конец Если If условие Then команды, которые исполняются при выполнении условия (истина) Else команды, которые исполняются, если условие не выполнятся (ложь) End If . Оператор условного перехода можно писать в многострочном варианте: If Условие Then Команды1 Else Команды2 End If Оператор условного перехода можно писать в однострочном варианте. Если оператор не помещается в одной строке, то она может быть разбита на несколько строчек, но при переносе на новую строку, нужно поставить знак _ . If Условие _ Then Команды1_ Else Команды2 End If или If Условие Then Команды1_ Else Команды2 End If
Слайд 28
Условие может быть и сложным — простые условия, соединенные между собой логическими операциями: And — и, Or — или, Not — не. Во многих программах можно встретить и вложенные условия, но если в программе необходимо выбирать из множества условий только одну, например, выбор из списка, то рациональнее это организовать при помощи алгоритмической структуры «выбор» ( Select Case ). Алгоритмическая структура «выбор» ( Select Case ) — при выполнении различных условий, выполняются различные серии команд. Алгоритм «выбор» в Visual Basic и в VBA представляет собой следующий вид:
Слайд 29
Select Case Выражение (переменная, арифметическое выражение, значение какого-то свойства ОБЪЕКТА и т.д.) End Select Case Условие1 Команды1 Case Условие2 Команды2 Case Условие3 Команды3 (и так далее) End Select
Слайд 30
Цикл Циклом называется многократно повторяемый участок вычислений. Вычислительный процесс, содержащий один или несколько циклов, называется циклическим. По количеству выполнения циклы делятся на циклы с определенным (заранее заданным) числом повторений и циклы с неопределенным числом повторений. Количество повторений последних зависит от соблюдения некоторого условия, задающего необходимость выполнения цикла. При этом условие может проверяться в начале цикла — тогда речь идет о цикле с предусловием, или в конце — тогда это цикл с постусловием.
Слайд 31
Цикл Алгоритмическая структура цикл: Цикл со счетчиком — заранее известно количество повторений. Счетчик — значение какой-либо переменной — меняется с начального значения до конечного значения с некоторым шагом Step . Тело цикла (команды) выполняется до тех пор, пока Счетчик не станет равным Конечному Значению. Если Step отсутствует, значит шаг = 1 Синтаксис цикла со счетчиком: For Счетчик = НачЗнач (число или выражение) То КонЗнач (число или выражение) Step шаг(число) ТЕЛО ЦИКЛА Next (можно записать имя Счетчика)
Слайд 32
Цикл Цикл с предусловием — заранее неизвестно количество повторений — тогда выход из цикла по условию. While Условие — цикл выполняется, пока Условие верно (истина). Do While Условие ТЕЛО ЦИКЛА [как изменить параметр цикла, например i = i + 2] Loop (окончание тела цикла, показывает место, предназначен для повторения блока операторов) Until Условие — цикл выполняется, пока Условие неверно (ложь). Do Until Условие ТЕЛО ЦИКЛА [как изменить параметр цикла, например i = i + 3] Loop
Слайд 33
Цикл Цикл с постусловием — заранее неизвестно количество повторений — тогда выход из цикла по условию. While Условие — цикл выполняется, пока Условие верно (истина). Do [как изменить параметр цикла, например i = i + 2] ТЕЛО ЦИКЛА Loop While Условие Until Условие — цикл выполняется, пока Условие неверно (ложь). Do ТЕЛО ЦИКЛА [как изменить параметр цикла, например i = i + 1] Loop Until Условие
Слайд 34
Основные понятия языка VBA В VBA Excel объектами являются рабочая книга , рабочий лист и его составляющие. Примеры объектов: Sheet – лист, Cell – ячейка, Range – диапазон ячеек, Application – приложение, UserForm – пользовательская форма.
Слайд 35
Методы Над объектами можно совершать различные действия Например: Clear ( очистить), приложение закрыть ( Quit), показать пользовательскую форму ( Show), скрыть ( Hide). Название метода отделяется от названия объекта точкой: объект.метод . Пример: Range(“B2:E2”).Select — выбрать диапазон ячеек B2:E2 UserForm2.Hide – c крыть форму №2 Напишите команды для «показать форму 5», «очистить диапазон ячеек C1:C5 » , “ выйти из приложения ”
Слайд 36
Методы и свойства некоторых объектов VBA Объект: Application ( приложение ). Метод: Quit ( закрыть ). Свойство: Caption ( имя главного окна ). Примеры. Application.Quit — закрыть приложение; Application.Caption = » Протокол» — установить в качестве заголовка окна приложения “Протокол”. Объект: Sheet ( лист ), ActiveSheet ( активный/выбранный лист ). Семейство: Sheets ( листы ). Методы: Select ( выбрать ); ShowDataForm ( показать встроенную форму ). Примеры: Sheets(» Меню»). Select — выбрать лист “Меню”; ActiveSheet.ShowDataForm — на активном в настоящий момент листе показать встроенную форму.
Слайд 37
Методы и свойства некоторых объектов VBA Объект: Range ( диапазон ). Методы: Select ( выделить ); Clear ( очистить ). Свойство: Name ( имя ). Примеры. Sheets («Протокол»). Range («В4:В10»). Name = «Класс» — диапазону В4:В10, расположенному на листе “Протокол”, присвоить имя “Класс”; Sheets («Протокол»). Range («В4:В10»). Select — выделить диапазон В4:В10 на листе “Протокол”.
Слайд 38
Методы и свойства некоторых объектов VBA Объект, Семейство: UserForm ( пользовательская форма ). Методы: Show ( показать ); Hide ( скрыть ). Свойство: Caption ( текст, отображаемый в строке заголовка ). Примеры. UserForm1.Show — показать пользовательскую форму номер один; UserForm1.Hide — скрыть пользовательскую форму номер один; UserForm1.Caption — «Информатика»- вывести заданный в кавычках текст в строке заголовка.
Слайд 39
Методы и свойства некоторых объектов VBA Объект, Семейство: TextBox ( Поле ввода ). Свойство: Text ( содержимое ). Примеры. UserForm1.TextBox1.Text = Date — в поле ввода номер один в пользовательской форме номер один записать текущую дату; UserForm1.TextBox2.Text = » » — очистить поле ввода номер два в пользовательской форме номер один.
Слайд 40
Методы и свойства некоторых объектов VBA Объект, Семейство: ComboBox ( поле со списком ). Метод: AddItem ( добавить элемент в список ). Свойства: Text ( содержимое ); Rowsource ( источник строк для списка ). Примеры. UserForm1.ComboBox2.Text = » » — очистить значение поля для поля ввода со списком номер два в пользовательской форме номер один; UserForm2.ComboBox1.Rowsource=»В2:В10″ — источником строк для поля один со списком в пользовательской форме два установить данные из диапазона В2:В10; UserForm1.ComboBox1.AddItem («Факс») — добавить к списку элемент, заключенный в кавычки.
Слайд 41
Методы и свойства некоторых объектов VBA Объект, Семейство: OptionButton . Свойства: Value ( значение ); Сaption ( надпись ). Примеры. UserForm3.OptionButton1.Value = True — выбрать переключатель номер один в пользовательской форме номер три; UserForm3.OptionButton1.Capture = «Успеваемость» — установить надпись “Успеваемость” рядом с переключателем в пользовательской форме номер три. Объект, Семейство: CheckBox . Свойства: Value ( значение ); Сaption ( надпись ). Примеры. UserForm2.CheckBox1.Value = True — установить флажок номер один в пользовательской форме номер два; UserForm3.CheckBox1.Value = False — сбросить флажок номер один в пользовательской форме номер три; UserForm4.CheckBox1.Capture=»Класс» — установить надпись “Класс” рядом с флажком в пользовательской форме номер четыре.
Слайд 42
События Событие представляет собой действие, распознаваемое объектом (например, щелчок мышью или нажатие клавиши, перемещение мыши или выход из программы), для которого можно запрограммировать отклик, т.е. реакцию объекта на произошедшее событие. В языке VBA для каждого объекта определен набор стандартных событий. Стандартное событие для объекта “кнопка” ( CommandButton ) — щелчок мышью ( Click ). Если пользователь нажимает на кнопку, то это событие. На это событие должен быть отклик, т.е. выполнение какой-либо программы. Такая программа называется процедурой обработки событий и имеет стандартное имя. Если такой отклик не создан (не написана соответствующая программа), то система никак не будет реагировать на это событие.
Слайд 43
Типы данных Элементы языка VBA Объекты — основные элементы языка VBA, но не единственные. К другим элементам относятся: константы, переменные, массивы, выражения, встроенные функции, встроенные диалоговые окна, операторы. Константы — данные, не изменяющиеся в процессе решения задачи. Константы бывают двух видов: числовые и символьные. Числовые константы — это целые либо вещественные числа. Символьные константы — текст, заключенный в кавычки. Пример числовой константы — 5,8 (использование запятой или точки зависит от настроек операционной системы). Пример символьной константы — ООО “Темп”. Переменные — данные, значения которых меняются в ходе выполнения программы. Для переменной задается имя и тип. Имя переменной должно начинаться с буквы и может содержать любую комбинацию букв, цифр и символов за исключением точек, пробелов и следующих символов: “!”, “%”, “&”, “$”, “#”, “@”. Длина имени не должна превышать 255 символов. Не следует использовать имена, совпадающие с ключевыми словами VBA и именами встроенных функций и процедур. Основные типы переменных, их размеры и диапазоны принимаемых значений приведены в табл. 1.
Слайд 44
Типы данных
Слайд 45
Типы данных 1. Boolean — c одержит значения, которые могут быть только true или False . Ключевые True слова и False соответствуют двум состояниям переменных Boolean . Используйте логический тип данных ( Visual Basic ), чтобы установить значения двух состояний, такие как true / false , да/нет или вкл./выкл. Boolean значения не хранятся в виде чисел, а сохраненные значения не должны быть эквивалентными числам. 2. Byte — c одержит 8-разрядные целые числа без знака (1 байт), которые варьируются от 0 до 255. Значение по умолчанию для типа byte равно 0. 3. Char — c одержит 16-разрядные (2-байтовые) кодовые точки без знака в диапазоне от 0 до 65535. Каждая кодовая точка или код символа представляет один символ Юникода.
Слайд 46
Типы данных 4. Date — c одержит 64-разрядные (8-байтные) значения IEEE, представляющие даты в диапазоне от 1 января 0001 года до 31 декабря 9999 года и время от 00:00:00 (полночь) до 23:59:9999999. Каждое приращение представляет 100 наносекунд затраченного времени с начала 1 января 1 года по григорианскому календарю. Максимальное значение представляет 100 наносекунд перед началом 1 января 10 000 года.
Слайд 47
Типы данных 5. Десятичные ( decimal) — c одержит 128-разрядные (16-байтные) значения со знаком, представляющие 96-разрядные (12-байтные) целые числа с переменной степенью, кратной 10. 6. Double — c одержит числа с плавающей запятой с двойной точностью со знаком IEEE 64-разрядной (8-байтовой) с плавающей запятой, которые варьируются от -1,79769313486231570E+308 до -4.94065645841246544E-324 для отрицательных значений и от 4,94065645841246544E-324 до 1,79769313486231570E+308 для положительных значений. Числа двойной точности хранят приближение реального числа. 7. Integer — c одержит 32-разрядные (4-байтовые) целые числа со знаком в диапазоне от -2 147 483 648 до 2 147 483 647. 8. Long — c одержит 64-разрядные (8-байтовые) целые числа в диапазоне от -9 223 372 036 854 775 808 до 9 223 372 036 854 775 807 (9,2…E+18). 9. Object — c одержит адреса, ссылающиеся на объекты. Для переменной можно назначить любой Object ссылочный тип (строка, массив, класс или интерфейс). Переменная Object также может ссылаться на данные любого типа значения (числовой, Boolean , , CharDateструктурой или перечислением).
Слайд 48
Типы данных 10. Single — c одержит числа с плавающей запятой с плавающей запятой со знаком IEEE 32-разрядной (4,4028235E+38–1.401298E-45E-45) для отрицательных значений и от 1,401298E-45 до 3,4028235E+38 для положительных значений. Числа с одной точностью хранят приближение реального числа. 11. String — c одержит последовательности 16-разрядных (2-байтовых) кодовых точек без знака, которые варьируются от 0 до 65535. Каждая кодовая точка или код символов представляет один символ Юникода. Строка может содержать от 0 до примерно двух миллиардов (2 ^ 31) символов Юникода.
Слайд 49
Элементы VBA Объекты — основные элементы языка VBA, но не единственные. К другим элементам относятся: константы, переменные, массивы, выражения, встроенные функции, встроенные диалоговые окна, операторы. Константы — данные, не изменяющиеся в процессе решения задачи. Константы бывают двух видов: числовые и символьные. Числовые константы — это целые либо вещественные числа. Символьные константы — текст, заключенный в кавычки. Пример числовой константы — 5,8 (использование запятой или точки зависит от настроек операционной системы). Пример символьной константы — ООО “Темп”. Переменные — данные, значения которых меняются в ходе выполнения программы. Для переменной задается имя и тип. Имя переменной должно начинаться с буквы и может содержать любую комбинацию букв, цифр и символов за исключением точек, пробелов и следующих символов: “!”, “%”, “&”, “$”, “#”, “@”. Длина имени не должна превышать 255 символов. Не следует использовать имена, совпадающие с ключевыми словами VBA и именами встроенных функций и процедур.
Слайд 50
Элементы VBA Массив — упорядоченная совокупность однотипных переменных. Массивы имеют имя и размерность. Имя массива подбирается с учетом тех же правил, что и имена переменных. Размерность — это количество элементов (переменных), составляющих массив. Из констант, переменных и встроенных функций (они рассмотрены далее) с помощью скобок и знаков арифметических операций (“+”, “-”, “*”, “/”, “^”) можно составлять выражения . Частным случаем выражения может быть просто одиночный элемент, т.е. константа, переменная или обращение к встроенной функции. Примеры выражений: Z ( a+b )^2 45 sin (y)
Слайд 51
Функции VBA В VBA имеется большой набор встроенных функций , которые разделяют на категории. Примеры категорий: математические функции; функции преобразования форматов; логические функции; функции времени и даты. функции проверки типов;
Слайд 52
Функции VBA
Слайд 53
Функции VBA Кроме перечисленных функций, объект Applications позволяет вызвать более 400 встроенных функций рабочего листа при помощи конструкции вида: Application.Функция Рабочего Листа(Аргументы). Примеры: Application.Sum ( Sheets («Проверка»). Range («A1:B20»)) — суммируются значения из ячеек диапазона A1:B20, расположенного на листе “Проверка”; Application.CountA ( Sheets («Ученики»). Range («A:A»)) — подсчитывается количество непустых ячеек в столбце А на листе “Ученики”.
Слайд 54
Структура редактора VBA Вызвать редактор Alt+F11
Слайд 55
Структура редактора VBA Панели инструментов Стандартная панель инструментов редактора Visual Basic содержит кнопки, предназначенные для выполнения наиболее часто используемых команд. Панель разбита на отдельные сегменты по типу выполняемых команд. Кнопки для возврата в Excel , вставки элементов (модулей, процедур, экранных форм) в проект и сохранение рабочей книги. Кнопки для вырезания, копирования, вставки и поиска фрагментов кода. Кнопки отмены действий и повторения отмененных действий. Кнопки для выполнения, остановки и прекращения выполнения процедуры, а также смены режима отображения экранной формы. Кнопки, управляющие отображением окон проектов, свойств и просмотра объектов, а также панели инструментов.
Слайд 56
Окно проекта и окно свойств Окно проекта активизируется выбором команды Вид ® Окно проекта ( View , Project window ) или нажатием кнопки Окно проекта . В окне проекта представлена иерархическая структура файлов, форм и модулей текущего проекта. но проекта . В окне свойств перечисляются основные значения свойств выбранного объекта. Используя это окно, можно просматривать свойства и изменить их значения. Для просмотра свойств выбранного объекта надо выполнить команду Вид ® Окно свойств ( Properties Windows ) или нажатием кнопки . Окно свойств состоит из двух составных частей: верхней и рабочей . В верхней части окна располагается раскрывающийся список, из которого можно выбрать любой элемент управления текущей формы или саму форму. Рабочая часть состоит из двух вкладок, в которых свойства располагаются По алфавиту ( Alphabetic ) и По категориям ( Categorized ).
Слайд 57
Окно просмотра объектов Окно для просмотра объектов ( Object Browser ) Окно Просмотр объектов ( Object Browser ) вызывается командой Вид ® Просмотр объектов ( View , Object Browser ) или нажатием кнопки . В этом окне можно просматривать все объекты проекта. Здесь вы найдете все свойства, методы и события, связанные с любым объектом. Окно Просмотр объектов состоит из трех основных частей: 1. Раскрывающегося списка Проект/Библиотека в верхнем левом углу экрана. Например, библиотеки объектов Excel , VBA, Office и VBAProject (объекты пользовательского проекта). 2. Списка Классы . Выводятся все классы выбранной библиотеки. 3. Списка Компоненты ( Members ). Выводятся все компоненты выбранного класса. Это окно предоставляет доступ ко всем объектам, свойствам, методам и событиям.
Языки программирования насчитывают несколько десятков вариантов. Какие-то из них подходят для нативной разработки, а какие-то – для кроссплатформенной. Visual Basic – язык программирования, который произошел от более старого языка – Basic.
В данной статье предстоит разобраться с особенностями составления Бейсик программ. Ориентироваться будем на VB, так как он встречается на практике чаще. А еще необходимо выяснить особенности выбранного ЯП и сферы его применения. Эта информация поможет понять, стоит ли вообще начинать изучение Visual Basic (далее он будет называться просто «Бейсик»).
VB – это…
Строки кода для работоспособного программного обеспечения удастся написать на любом выбранном языке. «Бейсик» — полноценный ЯП, а также специальная интегрированная среда разработки. Она была создана корпорацией Microsoft. Это – наследник BASIC с огромным количеством диалектов.
VB предусматривает:
- процедурное программирование;
- написание кода при помощи объектно-ориентированных принципов;
- компонентно-ориентированность.
Соответствующая интегрированная среда предлагает разработчику множество инструментов разработки с упором на визуальную составляющую. Это способствует быстрому проектированию уникальных пользовательских интерфейсов. Огромный код прописывать не придется – достаточно добавить несколько элементов в рабочую область, а затем написать пару строк.
История развития
Сам BASIC появился в 1964 году. В 80-х он стал утрачивать свою актуальность ввиду сложности. Исходный код даже самого элементарного приложения по сравнению с «конкурентами» содержал множество строчек и не выделялся быстродействием.
Все это привело к тому, что разработчики начали задумываться над созданием диалектов BASIC. А компания Microsoft выпустила QBasic, а чуть позже – VB.
Популярность этот язык программирования получил, начиная с версии 3.0, которая позволила взаимодействовать с базами данных. Освоить такой «Бейсик» мог даже рядовой пользователь, далекий от вопросов разработки. Элементарное приложение можно было составить в несколько строк, половина из которых прописывалась автоматически во время использования встроенных инструментов.
Традиционный VB появился в 1998 году – это его последняя версия. Далее, после сборки 6.0, Майкрософт решили разделить язык на несколько векторов. Они стали развиваться VB на платформе .Net, а также адаптированные версии для решения задач локального характера.
Виды VB
Рассматривая Basic типа Visual, нужно понимать – у него существуют разновидности. В зависимости от выбранного варианта программист будет решать те или иные задачи. Поэтому перед непосредственным написанием Бейсик программы, нужно определиться, чем именно пользоваться.
Классика
Basic Classic – классический VB. Он ориентирован на разработку приложений под Windows. Используется преимущественно как инструмент написания строк кода для соответствующей операционной системы. Предусматривает широкий спектр возможностей и инструментов, ориентированных на программирование под Windows.
Сюда относят:
- просмотр переменных и структур практически моментально;
- встроенный отладчик;
- отдельное удобное окно отладки;
- всплывающие подсказки.
Classic не пишется в отличных от изначальной средах разработки.
VBA
Аналог предыдущего варианта, но направленный на то, чтобы пользователь мог создать макросы и прикладные утилиты для уже имеющихся приложений. Получил достаточно широкое распространение. Такой результат получен за счет совместимости с MS Office.
VBA позволяет написать несколько строк для автоматического выполнения различных задач. Используется даже в 2022 году, но из-за отсутствия достаточно контроля безопасности применение чужих макросов может быть опасно. Это связано с образованием макровирусов.
VBScript
Урезанный вариант Classic. Такой Basic является скриптовым. Он подходит для администрирования на базе Windows. Активно применяется для создания страниц ASP и всевозможных сценариев под IE.
Basic .NET
Вариант, появившийся после версии 6.0 классического VB. Совершенно новый вектор развития от Microsoft. Ориентирован на работу с платформой .NET. Он:
- использует в работе библиотеку классов из .НЕТ;
- имеет объектно-ориентированную парадигму;
- обладает полиморфизмом и строгой типизацией.
Позволяет создавать крупномасштабные проекты с минимальным количеством строк исходного кода. Полученные на выходе утилиты отличаются скоростью работы, но они все равно уступают софту, составленному на C++ или C#.
Особенности
Перед тем, как делать контент на VB, нужно изучить особенности и основы языка. Рассматриваемый вариант позволяет задействовать при разработке множество визуальных компонентов и контролов, определять атрибуты и действия для элементов, создавать дополнительные строки для расширения стандартного функционала.
Составить элементарную утилиту сможет даже новичок, далекий от принципов разработки. Создание форм осуществляется через drag and drop, который отнимает минимум времени. Достаточно перетащить компонент на экран, а затем присвоить ему строки с теми или иными командами.
Компилятор VB включает в себя другие языки программирования Visual Studio, но ограничения в интегрированной среде не позволяют писать определенные разновидности контента. Также к особенностям ЯП относят:
- Объединение операторов. Принцип работает относительно логических и битовых вариантов.
- Автоматическое конвертирование целочисленных значений в вещественные. Это происходит после деления.
- Объявление массивов при помощи обозначения границ: верхних и нижних. Аналогичные принципы предусматривает Fortran и Pascal.
- Объединение VB с COM. Сюда также относится Windows.
- Наличие специального типа данных — variant. Он используется для переменных, в которых не указан тип данных.
Язык поддерживает статическую и динамическую строгую типизацию. Является компилируемым и интерпретируемым. За счет совместимости с Windows даже новичок сможет создавать программы с расширением .exe.
Преимущества и недостатки
Рассматриваемый «способ» создания программ – это интересный вариант для новичков. Минимум строк – максимум функциональности с упором на визуальные компоненты. Он обладает простым синтаксисом, с которым сможет справиться новичок. Является неплохим вариантом для тех, кто хочет попробовать собственные силы в разработке.
К преимуществам «Бейсика» относят:
- Быстрое написание контента, ориентированного на операционные системы Windows.
- Наличие защиты от ошибок. Она помогает делать программы стабильными. Этот момент до сих пор часто критикуют.
- Возможность применения WnAPI для расширения итогового функционала программ.
- Выбор типа компиляции. Строки программы можно скомпоновать в машинный код или P-код в несколько кликов.
А еще при написании программ предстоит работать с достаточно красивым и понятным интерфейсом редактора. В нем невозможно запутаться.
Недостатки тоже есть:
- Ориентированность преимущественно на Mac OS X и Windows. Другие системы не поддерживаются.
- Скорость работы. Если сравнивать программы на «Бейсике с визуализацией», то они будут уступать софту, написанному на других языках с ООП.
- Отсутствие механизмов наследования реализации имеющихся компонентов. Поддерживается лишь наследование интерфейсов.
Для того, чтобы строки написанной программы работали на устройстве, потребуется установить на компьютер отдельную библиотеку. А именно – msvbvm.dll.
Основы языка
Можно найти разнообразные уроки и туториалы, которые расскажут об особенностях написания программ на VB. Но перед тем, как создавать собственные утилиты, стоит обратить внимание на основы разработки. Далее представлены ключевые знания, которые помогут продвинуться в выбранном направлении с нуля.
Комментарии
«Бейсик» поддерживает возможность вставки комментариев. Для этого можно использовать или новую строку, или уже имеющуюся. Во втором случае комментарий вставляется после основного кода.
Если разработчику необходимо провести проверку той или иной процедуры, он может просто превратить ее в упомянутый компонент. Для этого в самом начале строки ставится знак «апостроф». VBA будет игнорировать инструкцию при обработке кода.
Типы данных
Для того, чтобы задать тип данных, нужно использовать оператор Dim, после которого в строке приложения указывается имя. Далее следует ключевое слово As с типом переменной, в противном случае можно обойтись записью Dim имя_переменной. Соответствующий элемент получит тип variant.
Язык поддерживает автоматическое создание типов переменных. Для этого не нужно указывать в строках кода конструкцию Option Explicit в разделе деклараций. Подобный прием иногда приводит к снижению скорости работы полученного исходного контента.
В VB 6.0 поддерживаются следующие типы данных:
- Byte. Нужен для хранения чисел в диапазоне от 0 до 255.
- Integer. Целое. Обозначается суффиксом %. Хранит целочисленные от -32 768 до 2 767.
- Long. Обозначается в строке как &. Это – «длинное целое».
- Single (!). Позволяет задавать переменные с точкой одинарной точности.
- Double (#). Числа с плавающей точкой двойной точности.
- Decimal (CDec). Масштабируемое целое. Используется для того, чтобы применять десятичное представление чисел в строках.
- Boolean. Булевый тип. Хранит только «истину» и «ложь». Используется при работе с логическими операторами.
- String ($). Это – строка переменной длины. Помогает хранить строковые и символьные данные.
- String*N. Строка постоянной длины.
- Date. Тип данных, ориентированный на работу с датой и временем в программе.
- Object (Set). Помогает хранить ссылки на объект.
- Currency (@). Денежный тип. Имеет до 4 цифр после запятой и до 14 – перед ней.
Также здесь есть тип Variant. Он содержит данные любого характера, включая ссылки на объекты и пользовательские массивы. Будет присваиваться в строке кода, если разработчик не установил самостоятельно тип данных для той или иной переменной.
Операторы
Операторы для написания собственного программного обеспечения используются разные. Есть «стандартные» варианты, которые известны большинству ЯП, а есть операторы для конкатенации.
В данную категорию можно отнести:
- Присваивание (=). Помогает присваивать переменным те или иные значения. Может быть задан при помощи ключевого слова Let. Set используется для присвоения переменной объектного типа. ЯП поддерживает многократное присваивание.
- Сложение (+).
- Умножение (*).
- Деление (/).
- Вычитание (-).
- Степень (^).
- Целочисленное деление (). Первое число будет поделено на второе с отбрасыванием дробной части. Округление не производится.
- Деление по модулю (Mod). В ходе операции первое число делится на второе. Происходит возврат только остатка от выполненного действия.
- Равенство (=).
- Больше, чем. Сюда также относят «меньше, чем» (> и <).
- Больше или равно и меньше или равно (>= и <=).
- Не равно (<>).
- Сравнение объектов (Is). Будет определять, ссылаются ли переменные объектного типа на один и тот же элемент или на разные.
- Подобие (Like). При применении происходит сравнение строкового объекта с шаблоном. Далее система сообщает, подходит ли этот компонент.
- Логическое И (And), ИЛИ (or), отрицание (Not), исключение (Xor).
- Эквивалентность (Eqv). Производит оценку эквивалентности двух выражение. Если принцип соблюден, система вернет True.
- Импликация (Imp). False возвращается системой, если E1 = True, а E2 = False. В противном случае значение окажется True.
Также есть операторы конкатенации. + применяется для того, чтобы проводить операцию со строками. Когда обе части выражения – это символьный тип данных, операция «соединения» проходит успешно. Если одна – это число, а другая не может быть преобразована в соответствующий вариант, появляется ошибка.
Оператор & помогает автоматически преобразовывать выражения и значения в строковый тип. После этого «склеивание» будет производиться без проблем.
О модулях и классах
Бейсик программы хранят исходные коды в виде модулей. Они бывают разного вида:
- Формы. Обладают расширением .frm. Выступает такой модуль «базовым» для большинства программ. Содержит процедуры обработки события, общие процедуры, переменные, константы и их виды, внешние операции. При раскрытии формы в обычном текстовом редакторе появляется описание, элементы управления и свойства.
- Стандартный. Расширение — .bas. Это – контейнер для операций, функций и объявлений, к которым чаще всего получают доступ другие модули программы. Содержат глобальные и иные переменные, а также соответствующие процедуры. Код, написанный внутри, может не иметь связи с конкретной программой.
- Класса (.cls). Это – основа объектно-ориентированной разработки. Позволяет создавать новые объекты. Полученные компоненты могут обладать собственными свойствами, методами, а также событиями.
Этого достаточно, чтобы программировать софт на VB, если пользователь уже имел опыт в разработке. Всевозможные уроки и туториалы помогут быстро создать собственную программу, хоть и элементарную.
Простая консольная программа
После изучения базовых возможностей и функций можно приступить к созданию собственной первой утилиты. Это не слишком сложно, особенно если придерживаться определенного алгоритма действий.
Начать операцию необходимо с предварительной подготовки. В нее включено изучение основ VB, а также установка соответствующей интегрированной среды. Далее каждый этап будет рассмотрен более подробно.
Начало проекта
Первый шаг – создание нового проекта. В шаблоне по умолчанию есть все, что только может потребоваться для запуска итогового контента. Чтобы сделать проект на выбранном языке, необходимо:
- Запустить Visual Studio.
- Кликнуть по кнопке «Создать проект». Это делается в правой части открытого софта.
- Выбрать интересующий ЯП.
- Определиться с типом операционной системы. Пример – Windows. Далее предстоит указать вид проекта – «Консоль».
- Щелкнуть по надписи «Консольное приложение», а затем нажать на «Далее».
- Ввести имя проекта. Пример – WhatIsYourName.
- Выбрать в долгосрочной поддержке .Net 6.0. Обычно это происходит автоматически. Если нет – кликнуть по подходящему варианту вручную.
Как только все готово, можно нажать на «Создать». Через несколько секунд пользователь увидит на экране готовую форму. Остальные действия предстоит выполнять в ее пределах.
Запуск
После выбора подходящего шаблона и установки имени для него произойдет создание файла Program.vb. Имеющийся код изначально осуществляет вызов метода WriteLine. Он позволяет отобразить литеральную строчку «Привет, Мир!» в консольном окошке.
Выполнить соответствующую запись можно при помощи нескольких подходов – в режиме отладки, а также в качестве обычного автономного программного обеспечения на задействованном устройстве.
Запуск в отладке
Для этого необходимо:
- Нажать на кнопку WhatIsYourName в среде. Можно просто кликнуть по клавише F5.
- На экране появится консоль с соответствующей надписью. Это – режим отладки.
- Чтобы закрыть окно и вернуть в «прежнее состояние», потребуется нажать на любую клавишу.
Данный подход хорош для непосредственной проверки готовой утилиты или ее частей.
Автономный режим
А этот метод позволяет запускать программное обеспечение за пределами «Студии». Для этого потребуется сформировать самостоятельный контент с исполняемым файлом:
- Перейти в меню «Сборка».
- Кликнуть по надписи «Собрать решение».
- Выбрать ПКМ WhatIsYourName, а затем «Открыть в проводнике».
- Перейти к каталогу binDebugnet5.0.
- Запустить WhatIsYourName.exe.
Метод Main завершится после того, как произойдет выполнение одной инструкции. Окно консоли сразу же закроется. Но эту проблему удается решить. Рекомендация дана ниже.
Код для указания запроса
Теперь можно добавить фрагмент утилиты, которая запросит пользовательское имя. После обработки – выведет его на экран вместе с текущим временем и датой. А еще необходимо прописать команду, которая не позволит окну консоли закрываться до нажатия нужной кнопки:
- Ввести код после Sub Main и перед End Sub. В ходе операции требуется заменить WriteLine.
- Нажать на кнопку WhatIsYourName или на F5 на клавиатуре. Это поможет собрать утилиту.
- Ввести запрошенные данные. В рассматриваемой ситуации – имя.
- Щелкнуть по любой кнопке на клавиатуре.
После описанных действий меню отладки будет закрыто. Можно собрать исполняемый файл и посмотреть, что получилось.
Система управления с GIT
GIT – система управления контроля версий. Является одной из самых популярных. Можно связать получившийся контент с Git. У VStudio имеются встроенные инструменты для проведения операции.
Чтобы связать с системой контроля версий исходную утилиту, нужно:
- В строчке состояния в правом нижнем углу «Студии» щелкнуть по «Добавить в систему управления версиями».
- Щелкнуть по GIT.
- Войти в GitHub. Это потребуется проделать в окне «Создать репозиторий…». Имя будет присвоено автоматически. Репозиторий по умолчанию является частным.
- Нажать на кнопку «Создать и отправить».
В строчке состояния появится новая информация. Первый значок со стрелочками указывает на входящие и исходящие фиксации в текущей ветке. Его используют для получения соответствующих компонентов. Можно отобразить фиксации в первую очередь, нажав на значок, а после – по «Посмотреть входящие/исходящие…».
Второй знак (с карандашиком) демонстрирует незафиксированные корректировки. Если по нему нажать, соответствующие данные отобразятся в Git Changes.
Очистка
Когда работа с проектом завершена, утилита сформирована, а программист больше не планирует им пользоваться, нужно провести очистку ресурсов:
Перейти в «Обозреватель решений».
- ПКМ нажать по интересующему проекту. Откроется его контекстное меню. В нем нужно выбрать «Открыть в проводнике».
- Закрыть «Студию».
- Перейти на два уровня папок вверх. Делается это непосредственно в «Проводнике».
- Нажать ПКМ по имени имеющегося проекта и скомандовать «Удалить».
Basic программа стерта с устройства. Теперь можно начать полноценную разработку нового софта.
Интересные примеры
Далее будут приведены довольно интересные примеры контента на рассмотренном ЯП. Это – готовые решения для выполнения тех или иных задач:
- Форма входа с подтверждением. Не совсем полноценное приложение. Больше отражает функцию. В меню проекта нужно разметить на экране кнопку, а ей присвоить следующую запись:
- Пароль для запуска ПО. Полезная возможность, особенно если хочется обеспечить дополнительную защиту или скрыть приложение от посторонних глаз. Запись осуществляется в стандартном проекте: . Здесь «12345» — это пароль. Его можно задать по собственному усмотрению.
- Вывод сообщения. Элементарная возможность:
- Рисование. Это – своеобразный графический мини-редактор. Рисовать клиент сможет прямо в открывающейся форме. В стандартном проекте предстоит указать следующее:.Цвета меняются при помощи значения QBColor(0), где 0 – это любая другая желаемая цифра.
- Запуск только один раз. Если попытаться активировать соответствующий контент повторно, система выдаст специальное сообщение: .
- Перезагрузка устройства. Рекомендуется размещать запись «на кнопке»: .
А еще можно посмотреть, сколько работает устройство. Основан предложенный пример на библиотеке kernel32. За счет этого сначала необходимо подключить DLL-библиотеку:
Все это – элементарные возможности и функции, которые помогут дополнить практически любое программное обеспечение.
Изучение с нуля
Программы на Бейсике составлять не слишком сложно. Чтобы обучиться основам разработки на нем, можно смотреть разнообразные уроки. А еще можно поискать сопутствующую литературу по интересующему ЯП.
Чтобы быстрее добиться успеха «с нуля», рекомендуется обратить внимание на дистанционные онлайн курсы. Пример – от образовательного центра OTUS. Там есть программы, благодаря которым в сжатые сроки можно освоить любую инновационную IT-профессию.
Пользователи смогут выбрать один или несколько курсов. Они длятся до 12 месяцев. В процессе клиентам обеспечено постоянное кураторство и все необходимые для погружения в тему материалы, поданные понятным языком. Море практики, интересных заданий, а также помощь в формировании портфолио.
По окончании дистанционных курсов пользователи получают специальные онлайн сертификаты. Это – документальное официальное подтверждение имеющегося багажа знаний и умений.
Хотите освоить современную IT-специальность? Огромный выбор курсов по востребованным IT-направлениям есть в Otus!
В статье рассказывается:
- История развития Visual Basic
- Основные разновидности Visual Basic
- Особенности Visual Basic
- Плюсы и минусы Visual Basic
-
Пройди тест и узнай, какая сфера тебе подходит:
айти, дизайн или маркетинг.Бесплатно от Geekbrains
Visual Basic сочетает в себе процедуры и элементы объектно-ориентированных и компонентно-ориентированных языков программирования. Даже несмотря на то, что появился VB более 50 лет назад, он до сих пор с успехом используется для решения определенных задач.
К примеру, с его помощью благодаря автоматической реализации некоторых механизмов можно быстро разрабатывать приложения баз данных для операционных систем от Microsoft Windows. Есть у Visual Basic и другие преимущества, хотя без недостатков тоже не обошлось. Но давайте поговорим обо всем этом несколько более подробно.
Язык BASIC был разработан в 1964 году. Он создавался для выполнения учебных задач, при которых обучающиеся могли бы использовать простые алгоритмы для освоения навыков программирования. Данный язык вывел образование на новый уровень, а программисты начали соревноваться между собой, создавая все новые и новые диалекты.
В число людей, начавших свою профессиональную карьеру с использования BASIC, входил Билл Гейтс, который в возрасте 13 лет написал на нем свою первую программу. В 20 лет он вместе с Полом Алленом получал свои дивиденды от реализации версии Altair BASIC.
В 80-х годах популярность BASIC стала постепенно снижаться. Разрабатываемые в то время языки уже не имели столь сложного синтаксиса, а их спектр возможностей становился все шире. Лишь Microsoft продолжал выпускать разновидности BASIC, сначала создав QBasic, а затем и Visual Basic.
На первых порах версии Microsoft Visual Basic не были столь популярны. Дело в том, что они практически не отличались от QBasic. Исключениями являлись разве что графический интерфейс и подсветка синтаксиса. Но Microsoft внесли существенные коррективы в версию 3.0.
Комплектация Professional позволяла разработчикам взаимодействовать с базой данных Access, а благодаря графическим возможностям с языком смогли работать даже те люди, которые не имели навыков программирования. Плюс ко всему, увеличилась скорость работы, а установка ПО стала значительно проще.
В 1995 году появилась Windows 95, что позволило Visual Basic 4.0. выйти в лидеры. Был создан полноценный компилятор, появилась возможность разрабатывать 16 и 32-ядерные приложения, и повысилось быстродействие.
Последняя версия традиционного Visual Basic вышла в свет в 1998 году. С этого момента Microsoft поменял стратегию, обеспечив два вектора развития языка: VB на платформе .NET и адаптированные версии для решения локальных задач (VBA, VBScript, eVB).
Основные разновидности Visual Basic
Классический Visual Basic (Visual Basic Classic)
Данный язык в значительной степени привязан к своей среде разработки и к OS Windows, из-за чего он может использоваться лишь в качестве инструмента создания приложений для этой операционной системы. Привязка к среде означает наличие множества средств, помогающих и упрощающих процесс программирования.
Скачать файл
В список таких средств можно отнести: просмотр переменных и структур данных на лету, встроенный отладчик, окно отладки, всплывающая подсказка при наборе текста программы (IntelliSense). Вследствие этого применение Visual Basic вне среды разработки, скажем, в стандартном текстовом редакторе, не только неоправданно, но и невозможно.
Visual Basic for Applications (VBA)
Эта разновидность Visual Basic почти не отличается от обычного варианта и разрабатывалась в целях написания макросов и прочих прикладных программ для конкретных приложений. Широкое распространение данный язык получил за счет применения в пакете Microsoft Office. Стоит отметить, что из-за большой популярности Visual Basic for Applications и отсутствия должного контроля безопасности появилось множество макровирусов.
Читайте также
Visual Basic Scripting Edition (VBScript)
Можно сказать, что это немного урезанная версия стандартного Visual Basic. Данный скриптовый язык, как правило, применяется в целях автоматизации администрирования систем на базе Windows, при создании страниц ASP и сценариев для Internet Explorer.
Visual Basic .NET
После выпуска Visual Basic 6.0. был смещен вектор развития технологии. При использовании Visual Basic .NET уже нельзя работать с помощью старых методов, поэтому его можно смело назвать отдельным языком. Это относится и ко всем остальным языкам для платформы .NET.
Индивидуальность языка, как и его основные достоинства (простота, скорость создания программ, лёгкость использования готовых компонентов), уже не столь значимы, ведь акцент смещен в сторону возможностей самой платформы .NET, на ее библиотеки классов.
Специфика VB.NET заключается в его объектной ориентированности. Иными словами, это отдельный объектно-ориентированный язык, который поддерживает наследование, перегрузку операторов, полиморфизм, статическую типизацию. Такое решение дает возможность выполнять задачи по построению крупногабаритных приложений, которые одновременно с этим могут являться гибкими, масштабируемыми и расширяемыми. Такие приложения можно создавать и с использованием обычного Visual Basic 6.0, но это будет гораздо труднее.
Топ-30 самых востребованных и высокооплачиваемых профессий 2023
Поможет разобраться в актуальной ситуации на рынке труда
Подборка 50+ ресурсов об IT-сфере
Только лучшие телеграм-каналы, каналы Youtube, подкасты, форумы и многое другое для того, чтобы узнавать новое про IT
ТОП 50+ сервисов и приложений от Geekbrains
Безопасные и надежные программы для работы в наши дни
Уже скачали 20112
Да, Visual Basic.NET не столь распространен как C++, C# и Java, но вместе с тем он имеет довольно большой потенциал и широкий спектр возможностей. При использовании VB.NET разработчики могут создавать различные типы приложений, включая простые консольные утилиты, графические программы, игровые приложения и сложные нагруженные веб-сервисы
При этом осваивать язык лучше всего с VBA. Дело в том, что он более прост, подразумевает разработку всем известных продуктов и ограничен в области применения, что смещает акцент в обучении именно на язык. Работа с Visual Basic .NET труднее, но интереснее. Для программирования будет необходимо больше времени и справочных ресурсов, однако у данного языка гораздо больше возможностей.
Особенности Visual Basic
Работа с Visual Basic предполагает использование визуальных компонентов и контролов, определение атрибутов и действий для компонентов, создание дополнительного кода для расширения функциональных возможностей.
Благодаря определенным по умолчанию значениям и действиям для компонентов появляется возможность разработать простую программу без написания кода специалистом. В более ранних версиях были некоторые проблемы связанные с производительностью программ, однако нынешние компьютеры и компиляция собственного кода позволяют снизить негативное влияние этого фактора.
Компиляция программ появилась в VB 5, однако исполняемые программы даже на сегодняшний день предполагают наличие определенных библиотек для запуска. Такие библиотеки имеются в Windows 2000 и выше. В более ранних версиях OS они должны поставляться вместе с программой.
Создание форм осуществляется способом drag and drop, что в переводе означает «перетащи и брось». Элементы управления располагаются на форме (к примеру, поля ввода, кнопки и др.). У этих элементов управления имеются собственные атрибуты и обработчики событий. Множество атрибутов предполагают возможность изменения в процессе выполнения программы, поэтому можно разрабатывать программы, которые будут динамически реагировать на действия пользователя.
VB может создать исполняемые программы (EXE файлы), элементы управления ActiveX, библиотеки DLL. Но все же предназначением данного языка является создание программ под OS Windows.
Есть возможность применения диалоговых окон с ограниченными функциональными возможностями для обеспечения подсказок. Управленческие элементы обеспечивают основополагающие возможности функционала программы, при этом специалист может осуществить расширение логики приложения с помощью обработчиков событий.
Скажем, выпадающий список в автоматическом режиме показывает список и дает возможность выбора элемента пользователем. Обработчик событий вызывается в целях выполнения дополнительного кода в зависимости от подобранного элемента.
Язык применяет справочные данные для того чтобы собрать мусор. У него есть обширная библиотека сервисных объектов и объектно-ориентированная разработка. При этом VB не привязан к регистру, что и отличает его от множества других языков. Сравнение строк с одной стороны зависит от регистра, но с другой – может выполняться и без его учета.
Компилятор VB идет совместно с другими языками Visual Studio, такими как C, C++. Вместе с тем из-за ограничений в интегрированной среде разработки у программиста нет возможности разрабатывать определенные типы приложений.
Точный инструмент «Колесо компетенций»
Для детального самоанализа по выбору IT-профессии
Список грубых ошибок в IT, из-за которых сразу увольняют
Об этом мало кто рассказывает, но это должен знать каждый
Мини-тест из 11 вопросов от нашего личного психолога
Вы сразу поймете, что в данный момент тормозит ваш успех
Регистрируйтесь на бесплатный интенсив, чтобы за 3 часа начать разбираться в IT лучше 90% новичков.
Только до 27 марта
Осталось 17 мест
Более того, VB имеет еще несколько особенностей:
- Объединены логические и битовые операторы. Это отличает его от всех C подобных языков, например, Java и Perl.
- Так называемая булевская постоянная «истина» имеет числовое значение −1, а «ложь» − 0. Это обусловлено тем, что тип Boolean хранится как 16-разрядное целое число со знаком. Между ними имеется взаимосвязь, осуществляемая посредством логической операции Not. Иными словами, Истина = Не Ложь.
- Целые числа в автоматическом режиме конвертируются в вещественные после применения деления (/). Оператор () осуществляет деление с усечением дробной части.
- Массивы объявляются с определением верхней и нижней границ, точно также как и в Pascal и Fortran. Используя оператор Option Basе, можно определить нижнюю границу по умолчанию, однако такое действие может привести к путанице между программами. Нижняя граница массивов не ограничивается 0 или 1. Есть возможность установки более низких границ, тогда как в VB.NET и VBScript нижняя граница зафиксирована.
- VB объединен с OS Windows и COM.
- Для переменных, объявленных без указания типа, применяется по умолчанию тип variant. Однако после применения оператора Deftype есть возможность выставить и другой тип по умолчанию, например, DefInt, DefBool, DefVar, DefObj, DefStr и т.д. При этом тип по умолчанию можно отменить для переменной после применения специализированного символа-суффикса в имени переменной.
Плюсы и минусы Visual Basic
Ключевым преимуществом этого языка является крайне простой синтаксис. Иными словами, Visual Basic подходит для начинающих программистов. Вместе с тем это не является преградой для применения современных способов создания программных приложений (визуального проектирования и использования объектно-ориентированного подхода).
Имеются и некоторые другие преимущества:
- Можно осуществлять высокоскоростную разработку приложений с графическим интерфейсом для MS Windows.
- Есть защита от ошибок, которые связаны с использованием указателей и доступом к памяти, за счет чего VB приложения являются более стабильными. Однако данный нюанс подвергается критике.
- Можно применять большинство WinAPI функций в целях увеличения функционала приложений. В книге «Visual Basic Programmer’s Guide to the Win32 API» Дэн Эпплман подробно рассматривает эту тему.
- Программист может выбрать компиляцию в машинный код, но и в P-код. Находясь в режиме отладки, программа постоянно компилируется в P-код, причем это не зависит от выбора. Это дает возможность делать паузу в исполнении программы для внесения существенных корректировок в исходный код, после чего продолжать исполнение. Таким образом, нет необходимости в полной перекомпиляции и перезапуске программы.
Но у языка программирования Visual Basic есть и ряд недостатков:
- Поддерживаются операционные системы Windows и Mac OS X и никакие другие (исключением является VB1 for DOS).
- Низкая скорость работы. Это объясняется тем, что почти весь список имеющихся функций языка реализован посредством библиотеки времени исполнения (runtime library). Данная библиотека осуществляет большое количество «излишних» действий в целях проверки и/или преобразования типов.
- Нет механизма наследования реализации объектов. При помощи имеющегося в VB наследования можно наследовать лишь интерфейсы (отсутствует возможность наследования их реализации).
- Необходимо иметь установленную msvbvmXX.dll для использования программы.
Читайте также
При этом все вышеназванные недостатки появляются из-за наличия его ключевого преимущества – легкости разработки графического интерфейса. По этой причине множество разработчиков применяют VB в целях создания интерфейса пользователя, тогда как функциональность программы реализуется в виде динамически подключаемых библиотек (DLL), которые пишутся на другом языке (в большинстве случаев это C++).
На данный момент VB не очень похож на тот язык, что был разработан около полувека назад. Он все еще очень прост, однако имеет множество функций и возможностей, которых не было раньше. Плюс ко всему, Microsoft все еще работает над платформой .NET, поэтому в ближайшее десятилетие он точно будет иметь статус полезнейшего инструмента для любого разработчика.