Полезные программы для Excel и VBA. Программы vba пример


Пример программы. VBA для чайников

Пример программы

Чтобы сделать обсуждение иерархии VBA-элементов немного менее абстрактным, давайте рассмотрим приведенный ниже программный код модуля. Этот модуль содержит все упомянутые выше элементы (за исключением проекта, поскольку модули содержатся в проектах, а не наоборот). После текста модуля идет обсуждение составляющих его элементов.

Думаю, сначала нужно объяснить, что делают в этом примере программы. Сначала создается совокупность (.массив) из шести целых величин, которым приписываются случайные значения от 1 до 1000. Затем после подсчета числа значений, превышающих определенное пороговое значение, а именно значение 500, полученный результат отображается в небольшом диалоговом окне.

Option Explicit

Const Maximum As Integer = 500

Const HowMany As Integer = 5

Dim ListOfNumbers() As Integer

Sub MAIN()

_ Dim ItemsInList, n, x As Integer

_ ReDim ListOfNumbers(HowMany)

_ Randomize

_ For x = 0 To HowMany

ListOfNumbers(x) = int( ( 1000 * Rnd) + 1)

_ Next x

_ n = CountBigNumbers()

_ MsgBox (There were n values greater than _

_ Maximum)

End Sub

Function CountBigNumbers()

_ Dim Counter As Integer, y As Integer

_ Counter = 0

_ For = 0 To HowMany

If ListOfNumbers(y) Maximum Then

Counter = Counter + 1

End If

_ Next у

_ CountBigNumbers = Counter

End Function

Весь этот блок программного кода в своей совокупности представляет собой модуль. Он состоит из ряда операторов, организованных в три раздела. Это раздел объявлений, начинающийся оператором Option Explicit, процедура типа Sub, начинающаяся оператором Sub

MAIN(). и процедура типа Function, начинающаяся оператором Function CountBigNumbers ( ). Большинство операторов этого модуля занимают по одной строке, но оператор в строке, начинающийся с выражения MsgBox, заканчивается в следующей строке.

Поделитесь на страничке

Следующая глава >

it.wikireading.ru

Создание VBA-Программы. VBA для чайников

Создание VBA-Программы

Теперь, после знакомства с редактором Visual Basic и системой справки VBA, вы полностью готовы к своему первому походу к границам программирования. Я уже упоминал в главе 1, что процесс создания программы можно разделить на несколько этапов. В такой изысканной книге, как эта, я просто не могу себе позволить пожертвовать столь прекрасно упорядоченным подходом. Так что вам придется пройти весь курс строевой подготовки.

1-й шаг. Проектирование программы-примера

Поскольку мне не известно, с каким из VBA-приложений вы работаете, придется предложить вам в качестве примера нечто вполне типичное и, с другой стороны, потенциально полезное. Наша программа-пример должна будет открывать на экране новое окно с показанной в нем злободневной цитатой, а также датой и временем (я называю все это сообщением). Окно будет оставаться на экране до тех пор, пока пользователь не щелкнет на кнопке ОК.

Имея такое описание программы, вы можете без труда представить себе те элементы, из которых должна состоять программа.

* Очевидно, программа имеет одно окно, поэтому вам понадобится одна форма (UserForm).

* Для формы потребуются два элемента управления - надпись для сообщения и кнопка для команды ОК.

* Нужно будет также создать программный код для двух процедур: одной- для надписи, в которую нужно поместить сообщение, а другой - для выхода из программы, когда пользователь щелкнет на кнопке ОК.

Чего наша программа определенно не требует, так это отдельного модуля для ее VBA-кода (модуль - это отдельная единица программного кода, содержащая одну или несколько процедур; более подробно о модулях говорится в главе 6). Обе наши процедуры можно разместить в окне программного кода, ассоциированном с формой. В конце концов, ведь эти процедуры отвечают на события, которые происходят с формой.

Рассмотрим процедуру, отображающую сообщение и дату. Нам она не понадобится до тех пор, пока окно программы не появится на экране. В программе это произойдет, конечно, быстрее, чем вы глазом успеете моргнуть, но принцип остается - все равно эта процедура должна вызываться событием появления формы.

Процедура выхода из программы тоже вызывается событием, относящимся к форме, а именно - щелчком на кнопке ОК. Эту процедуру тоже можно разместить в окне программного кода формы.

Не забывайте, что у многих VBA-программ вообще нет своих окон. При создании такой программы вам непременно придется создать хотя бы один модуль, чтобы было куда поместить программный код.

Поделитесь на страничке

Следующая глава >

it.wikireading.ru

Полезные программы для Excel и VBA

Главная » 26 Апрель 2011       Дмитрий       119227 просмотров

MZTools - Очень полезная утилита для тех, кто программирует на VBA. Поистине экономит время при написании кодов. Немаловажен тот факт, что утилита абсолютно бесплатна. Вот некоторые из её возможностей:

  • Автоматическая вставка обработчиков ошибок в модули
  • Вставка комментариев в заголовок процедуры, с автоматической вставкой времени, имени модуля и процедуры, возможностью указать автора процедуры
  • Автоматическая нумерация строк кода
  • Снятие нумерации со строк кода
  • Создание шаблонов часто используемых кодов
  • Собственный буфер обмена на 9 операций с возможностью кодов и последующей вставки любого из 9 скопированных кодов
  • и еще много полезного

Программа распространяется бесплатно.

Скачать »

  MZTools3VBASetup.zip (727,7 KiB, 6 131 скачиваний)

Официальный сайт: http://www.mztools.com/index.aspx

VBA Code Compare v.0.4 - позволяет сравнить и объединить любой внедрённый VBA код (макросы, код листов, исходный код модулей и пр.). Программа использует прямой доступ для работы с модулями VBA проекта. Таким образом, она избавляет от операций экспорта исходного кода в файл для последующего сравнения и обратного импорта после внесения изменений.

Программа распространяется бесплатно.

Скачать »

  VBACompare.zip (959,0 KiB, 3 415 скачиваний)

Официальный сайт:http://www.formulasoft.ru/vba-code-compare.html

Smart Indenter v3.5 - очень хорошая надстроечка для VBA. Настоятельно рекомендую всем, кто программирует в данной среде. Ведь почти все ставят отступы с помощью Tab или пробела во всяких конструкциях типа  IF...End If, Do...Loop и т.д. В общем-то именно это будет делать за Вас данная программулька - просто автоматически проставлять отступы в коде(в таких местах как конструкции IF...End If, Do...Loop и т.д.). Я когда у меня был 32-разрядный ПК с ней вообще обленился - забыл, когда вручную эти отступы проставлял.К сожалению, работает только с 32-разрядными системами. Если у вас 64-бита - то программа не установится.

Программа распространяется бесплатно.

Скачать »

  IndenterVBA.zip (254,9 KiB, 3 844 скачиваний)

Официальный сайт: http://www.oaltd.co.uk/Indenter/Default.htm

VBE Tools v2.0 - Главные особенности программы - можно переименовать элемент на форме и при этом все ссылки на этот элемент в коде будут заменены на новое имя элемента; возможность перемещать и изменять размеры форм и их элементов горячими клавишами.

Программа распространяется бесплатно.

Скачать »

  VBETools.zip (207,9 KiB, 2 808 скачиваний)

Официальный сайт:http://www.oaltd.co.uk/VBETools/Default.htm

VBA CodeCleaner - Программа вычищает из VBA-кода все "лишнее": комментарии, пробелы, отступы и пр. Все это, конечно, можно настроить отдельно и программа будет очищать только то, что укажете. Перед внесением изменений в проект можно задать создание резервных копий модулей.

Программа распространяется бесплатно.

Скачать »

  CodeCleaner.zip (552,0 KiB, 2 655 скачиваний)

Официальный сайт:http://www.appspro.com/Utilities/CodeCleaner.htm

MsgBox Generator - Совсем маленькая программка , которая делает лишь одну простую вещь - она показывает код на VB и VBA для вывода MsgBox-а с заданными параметрами. Вы выбираете параметры сообщения: задаете текст заголовка, тип сообщения(Предупреждение, Информация и т.д.), тип кнопока(Ок, Да и Нет и т.д.) и текст самого сообщения, а она выдает код.Подробнее про MsgBox можно узнать в статье Работа с диалогами

Программа распространяется бесплатно.

Скачать »

  MsgBox_Generator.zip (37,3 KiB, 3 575 скачиваний)

Официальный сайт: не обнаружен

VBE Tools - Многим из вас приходилось написать код для формы, а затем вспомнить, что какой-то элемент не назвали, как хотелось или просто захотелось переименовать в связи с изменением в коде? И, конечно же, сталкивались с той проблемой, что при переименовании элемента приходится идти в код и заменять там все ссылки на данный элемент на новое название. Так вот с помощью этой программы можно переименовать имя любого элемента формы(TextBox, Label и т.д.) и элементов ActiveX на листе Excel, а программа уже сама заменит в коде все ссылки со старого названия на новое. Очень удобно.

Программа распространяется бесплатно.

Скачать »

  VBETools.zip (207,9 KiB, 2 923 скачиваний)

Официальный сайт:http://www.oaltd.co.uk/VBETools/

www.excel-vba.ru

1-й шаг. Проектирование программы-примера. VBA для чайников

1-й шаг. Проектирование программы-примера

Поскольку мне не известно, с каким из VBA-приложений вы работаете, придется предложить вам в качестве примера нечто вполне типичное и, с другой стороны, потенциально полезное. Наша программа-пример должна будет открывать на экране новое окно с показанной в нем злободневной цитатой, а также датой и временем (я называю все это сообщением). Окно будет оставаться на экране до тех пор, пока пользователь не щелкнет на кнопке ОК.

Имея такое описание программы, вы можете без труда представить себе те элементы, из которых должна состоять программа.

* Очевидно, программа имеет одно окно, поэтому вам понадобится одна форма (UserForm).

* Для формы потребуются два элемента управления - надпись для сообщения и кнопка для команды ОК.

* Нужно будет также создать программный код для двух процедур: одной- для надписи, в которую нужно поместить сообщение, а другой - для выхода из программы, когда пользователь щелкнет на кнопке ОК.

Чего наша программа определенно не требует, так это отдельного модуля для ее VBA-кода (модуль - это отдельная единица программного кода, содержащая одну или несколько процедур; более подробно о модулях говорится в главе 6). Обе наши процедуры можно разместить в окне программного кода, ассоциированном с формой. В конце концов, ведь эти процедуры отвечают на события, которые происходят с формой.

Рассмотрим процедуру, отображающую сообщение и дату. Нам она не понадобится до тех пор, пока окно программы не появится на экране. В программе это произойдет, конечно, быстрее, чем вы глазом успеете моргнуть, но принцип остается - все равно эта процедура должна вызываться событием появления формы.

Процедура выхода из программы тоже вызывается событием, относящимся к форме, а именно - щелчком на кнопке ОК. Эту процедуру тоже можно разместить в окне программного кода формы.

Не забывайте, что у многих VBA-программ вообще нет своих окон. При создании такой программы вам непременно придется создать хотя бы один модуль, чтобы было куда поместить программный код.

Поделитесь на страничке

Следующая глава >

it.wikireading.ru

Цикл создания программы. VBA для чайников

Цикл создания программы

Независимо от используемых программных средств, процесс создания новой программы можно разбить на пять простых шагов.

1. Проектирование.

Здесь определяется, что должна делать программа, как она должна выглядеть на экране и взаимодействовать с другим программным обеспечением.

2. Реализация.

Для успешного выполнения п. 1 конструируются окна и другие элементы программы, появляющиеся на экране, и создается необходимый программный код. Это совсем несложно.

3. Тестирование.

Запускают программу, чтобы проверить, выглядит ли она так, как нужно, и выполняет ли то, что нужно. Как правило, не выглядит и не выполняет.

4. Отладка.

Весь программный код тщательно проверяется до тех пор, пока не выяснится причина неправильного поведения и не будут внесены соответствующие коррективы (как всякое приличное средство программирования, VBA имеет специальные возможности, облегчающие процесс отладки).

5. Повторное тестирование.

Повторяют пп. 3 и 4 до тех пор, пока хватит сил и терпения.

К счастью, специально заучивать эту последовательность шагов не придется - они станут, если можно так выразиться, вашей второй натурой, как только вы всерьез займетесь программированием в VBA.

Поделитесь на страничке

Следующая глава >

it.wikireading.ru

Примеры приложений на Visual Basic

Рекомендуем использовать Visual Studio 2017

Эта документация перемещена в архив и не поддерживается.

В этих примерах демонстрируются задачи архитектуры, проекта, пользователя и сборки.

To access samples from Visual Studio

  1. В меню Справка выберите пункт Примеры.

  2. В разделе Примеры на диске файла сведений откройте локальную папку примеров. По умолчанию примеры устанавливаются в папку диск:\Program Files\Microsoft Visual Studio 11\Samples\1033 или диск:\Program Files (x86)\Microsoft Visual Studio 11\Samples\1033.

  3. Щелкните правой кнопкой мыши ZIP-файл, содержащий примеры, которые вы хотите открыть, и выберите команду Извлечь все, чтобы извлечь примеры в соответствующую папку.

Наиболее актуальные примеры см. на веб-сайте Примеры Visual Basic.

Примечание о безопасности

Корпорация Майкрософт предоставляет включенные примеры на условиях "КАК ЕСТЬ", без каких-либо гарантий. Код в примерах предоставляется исключительно для демонстрации основных принципов. Предоставленный код может не отвечать требованиям безопасности для конкретной среды. Для достижения необходимого уровня безопасности и надежности проектов рекомендуется включать в них код обеспечения безопасности и код обработки ошибок.

Пример

Описание

Пример использования событий приложения

Демонстрируется использование событий My.Computer.Network для написания сетевых приложений, а также получение доступа к событиям приложений с помощью конструктора проектов.

Пример использования технологии ClickOnce

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

Пример консольного приложения

Демонстрирует простой ввод и вывод с помощью окна консоли.

Пример получения сведений о среде

Демонстрирует использование нескольких классов, которые предоставляют информацию о среде.

Пример работы с Excel

Демонстрируется использование Visual Basic для запуска Excel, создания книги на основе шаблона, обновления ячеек в листе и последующего заполнения диаграмм в книге. Также показывается способ отправки книги по электронной почте — либо однократно, либо по расписанию.

Пример игры

Показывается реализация простой игры Windows Forms с графикой GDI+, возможностями таймера, конфигурацией пользователя и таблицей результатов.

Пример ведения журнала

В примере используется объект My.Application.Log для написания обычного текстового файла, журнала событий и XML-файла.

Пример использования многопотоковости

Демонстрируется использование нескольких потоков для достижения параллелизма в задачах.

ПримерMy.Resources

Демонстрируется порядок управления ресурсами и параметрами для приложения с помощью объекта My.Settings, объекта My.Resources, конструктора проектов и редактора ресурсов.

Образец PowerPoint

Демонстрирует запуск PowerPoint, создание пустой презентации, добавление слайда и содержимого, печать слайдов, сохранение изменений и завершение работы PowerPoint из приложения Visual Basic.

Пример использования PrintForm

Демонстрируется использование функциональной возможности предварительного просмотра.

Пример отправки почты

Показывает, как отправить сообщение электронной почты через SMTP с помощью классов в пространстве имен System.Web.Mail.

Пример удаленного взаимодействия TCP

Демонстрирует использование архитектуры удаленного взаимодействия платформы .NET Framework. В этом примере используются XML-файлы конфигурации для указания дополнительных объектов и сведений о расположении сервера.

Пример многопоточного обновления интерфейса пользователя

Показывается обновление пользовательского интерфейса, когда данные предоставляются из другого потока.

Пример получения сведений о пользователе

Предоставляет обзор объекта My.User и шаблона Форма входа. В нем выполняется простая настраиваемая проверка подлинности.

Пример обновления проекта, созданного в Visual Basic 6.0

Показывает приложение в Visual Basic 6,0 и что приложение может быть обновлено на Visual Basic в Visual Studio.

Ссылки
Другие ресурсы

msdn.microsoft.com

Пример работы с оператором Select..Case в VBA

   В прошлой статье я рассказал о работе с условным оператором IF в VBA. Но что делать, если условий в задаче возникает очень много? Использовать конструкцию If многократно неудобно, и это усложняет читабельность кода.  Для таких целей в VBA предусмотрена еще одна очень полезная конструкция - управляющий оператор Select...Case.

Select...Case позволяет по определенному значению, диапазону или условию выполнить разные действия. Например:если а = 5 то выполнить действие 1если a в диапазоне между 7 и 9 то действие 2если a не подходит ни одно условие то действие 3

Это можно записать условным оператором If, получается следующее:

If a = 5 Then     действие 1 elseif (a > 7 And a < 9) Or (a = 7 Or a = 9) then     действие 2Else действие 3End If

Сложновато, не правда ли!? А теперь представьте, если условий будет гораздо больше.Теперь запишем это же, но с помощью конструкции Select:

Select Case a      Case 5             действие 1      Case 7 To 9             действие 2      Case Else             действие 3End Select

Код получился немного длиннее, но намного понятнее и читаемый. Теперь рассмотрим конструкцию:

  • Select Case а - ключевые слова конструкции, после которых идет переменная "а" которую необходимо проверить. Тип переменной может быть, целым, вещественным, строковым, символьным, логическим;
  • Case - ключевое слово, после которого указываются варианты условия;
  • Case 7 To 9 - проверяет, входит ли "а" в диапазон от 7 до 9;
  • Case Else - если "а" не подходит ни под одно условие, то выполняется ИНАЧЕ. Эту строку можно и не использовать;
  • End Select - ключевые слова означающие завершение конструкции Select.

Пример работы Select Case:

Sub Test()  a = 5    Select Case a         Case 5: MsgBox "a=5"         Case 7 To 9: MsgBox "a между 7 и 9"             Case Else: MsgBox "a не подходит"    End SelectEnd Sub

И еще один пример демонстрирующий задание условия в Case:

Sub Test()  a = 3   Select Case a      Case Is > 5            MsgBox "a больше 5"      Case Is > 7            MsgBox "a больше 7"      Case Else            MsgBox "Не подходит ни одно условие"   End SelectEnd Sub

Обратите внимание, при указании условия ">", после Case добавляется ключевое слово Is.

www.programm-school.ru