как написать код в vba

Язык Visual Basic — примеры написания кода

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

Все коды использовались в среде программирования Microsoft Visual Basic v6.0.

Выход с подтверждением

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

Итак, Beep это просто звуковой сигнал, дальше идет выделение памяти (Dim), потом уже выполняется действие, т.е. сообщение «Хотите выйти?», да или нет и конец программы. Вот такая бесполезная функция можете использовать в своих программах.

Пароль на запуск программы

Далее идет очень полезный код, это пароль на запуск программы, ну или для чего-нибудь другого. Открывайте стандартный проект щелкните в пустом месте (загрузка формы программы) и вставляйте следующее:

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

Вывод сообщения

Если хотите просто выводить сообщение, для чего-нибудь, то вставьте это:

Рисование на форме

Дальше идет такая мелкая программа как мини Paint, т.е. рисование, причем на самой форме. Откройте стандартный проект, щелкните в пустом месте и вставьте следующий код:

Цвет можете менять с помощью параметра QBColor(0), т.е. вместо 0 поставьте другую цифру.

Перезагрузка компьютера

Для того чтобы перезагрузить компьютер: поместите кнопку и вставьте следующий код:

Запуск программы в единственном экземпляре

Следующий пример поможет Вам сделать так, чтобы программа запускалась только один раз, т.е. в случае повторного запуска она выдаст соответствующее сообщение. В код формы вставьте:

Выключение компьютера

Для того чтобы выключить компьютер можно использовать следующий код:

Завершение любого процесса

Для того чтобы завершить процесс можете использовать следующий код:

Где, вместо ICQlite.exe может быть любой процесс.

Сколько работает компьютер

Ниже показан пример того, как можно определить время работы компьютера. Данный способ основан на использование библиотеки kernel32, поэтому в самом начале кода формы подключите данную DLL.

Мы рассмотрели простые функции, которые можно использовать практически везде. Теперь рассмотрим более серьезные примеры, и они Вам могут очень сильно помочь написать свои крупные проекты.

Примеры работы с папками

Удалить каталог

Создать каталог

Список всех папок с под папками

На форму добавляем 2 текстовых поля и кнопку, имя первого текстового поля: StartText, имя второго текстового поля OutText. Свойство Multiline = true, имя кнопки = CmdStart

Далее пишем код в кнопке:

Теперь запускаем программу, в текстовом поле StartText пишем: C:\windows, и жмем на кнопку.

Размер каталога

Примеры работы с файлами

Копировать

Примечание! Если в каталоге 2 уже находится файл с именем 1.txt, то он будет заменен на 1.txt из каталога 1.

Можно использовать и функции API:

Удаление

Например, мы хотим удалить файл 1.txt из корня диска C:\

Перемещение

Можно, например, переместит и так:

Но лучше так (через API):

Переименование

Для того чтобы переименовать файл 1.txt находящийся в C:\ на 2.txt можно использовать следующий код:

Определить размер файла

Размер файла можно определить двумя путями:

Если файл можно открыть функцией OPEN, то можно воспользоваться функцией LOF

Или использовать функцию FileLen

Скрыть часы программно

Добавьте 2 кнопки и вставляйте код:

Добавить иконку в трей

Добавляем модуль, вставляем в него код:

Чтобы использовать вставьте в код формы:

Блокируем кнопку пуск

Добавляем 2 кнопки и вставляем код:

Считываем параметры из INI файла

Программа подключается к FTP, а в ини файле прописаны параметры — сервер, логин, порт, пароль.

С начало создаем INI файл:

Его необходимо поместите в папку с программой. Далее, вставляем в модуль:

Затем вставляем в код формы:

Список запущенных процессов

Добавляем Listbox и 1 кнопку, вставляем следующий код:

Помещение программы в автозагрузку

Для того чтобы программа загружалась вместе с Windows, как и другие некоторые программы, можно использовать реестр:

Добавьте 2 кнопки и следующий код:

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

Для начала более серьезный способ (сделайте на всякий случай резервную копию реестра).

Ну и простой способ.

Скрываем панель задач

Добавляем 2 кнопки и вставляем код:

Разархивировать архив RAR

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

Сколько оперативной памяти в компьютере

Добавьте одну кнопку и вставляйте следующий код:

Скрыть значки рабочего стола

Это делается следующим образом. Добавите 2 кнопки и вставляйте следующий код:

С помощью кнопки Command1 значки скрываются, Command2 — появляются.

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

Источник

Код VBA

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

Код Excel VBA

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

Как открыть окно Visual Basic?

Если вы хотите написать код Visual Basic, мы должны написать его в окне Visual Basic. Вопрос здесь в том, где находится окно Visual Basic в Excel и как его открыть. Ответ заключается в выборе меню « Разработчик» и в меню разработчика выберите « Visual Basic», как показано на рисунке ниже.

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

Который откроет пустое окно, как показано ниже.

как написать код в vba. vba code 2. как написать код в vba фото. как написать код в vba-vba code 2. картинка как написать код в vba. картинка vba code 2. Всем привет, в этой статье я хочу показать Вам полезные коды небольших программ. Которые Вы можете использовать для написания уже своих более серьезных программ, ну или Вы искали именно эти функции, которые здесь описаны.

Легко и круто выглядит правильно. Но если Excel не имеет вкладки разработчика. Нам нужно добавить вкладку разработчика с помощью следующих шагов.

как написать код в vba. vba code 2. как написать код в vba фото. как написать код в vba-vba code 2. картинка как написать код в vba. картинка vba code 2. Всем привет, в этой статье я хочу показать Вам полезные коды небольших программ. Которые Вы можете использовать для написания уже своих более серьезных программ, ну или Вы искали именно эти функции, которые здесь описаны.

Шаг 2: Появится раскрывающийся список, нажмите на вкладку « Параметры ».

как написать код в vba. vba code 3. как написать код в vba фото. как написать код в vba-vba code 3. картинка как написать код в vba. картинка vba code 3. Всем привет, в этой статье я хочу показать Вам полезные коды небольших программ. Которые Вы можете использовать для написания уже своих более серьезных программ, ну или Вы искали именно эти функции, которые здесь описаны.

как написать код в vba. vba code 3. как написать код в vba фото. как написать код в vba-vba code 3. картинка как написать код в vba. картинка vba code 3. Всем привет, в этой статье я хочу показать Вам полезные коды небольших программ. Которые Вы можете использовать для написания уже своих более серьезных программ, ну или Вы искали именно эти функции, которые здесь описаны.

Шаг 4: Когда мы перетаскиваем параметры настройки ленты, мы находим параметр для разработчика (Custom), нам нужно установить этот флажок, который позволит нам использовать VBA в Excel.

как написать код в vba. vba code 4. как написать код в vba фото. как написать код в vba-vba code 4. картинка как написать код в vba. картинка vba code 4. Всем привет, в этой статье я хочу показать Вам полезные коды небольших программ. Которые Вы можете использовать для написания уже своих более серьезных программ, ну или Вы искали именно эти функции, которые здесь описаны.

Где написать код в Excel VBA?

как написать код в vba. vba code 5. как написать код в vba фото. как написать код в vba-vba code 5. картинка как написать код в vba. картинка vba code 5. Всем привет, в этой статье я хочу показать Вам полезные коды небольших программ. Которые Вы можете использовать для написания уже своих более серьезных программ, ну или Вы искали именно эти функции, которые здесь описаны.

Если мы добавим несколько листов в нашу книгу, это позволит использовать разные модули листов.

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

как написать код в vba. vba code 6. как написать код в vba фото. как написать код в vba-vba code 6. картинка как написать код в vba. картинка vba code 6. Всем привет, в этой статье я хочу показать Вам полезные коды небольших программ. Которые Вы можете использовать для написания уже своих более серьезных программ, ну или Вы искали именно эти функции, которые здесь описаны.

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

Модуль ThisWorkbook

Какой бы код не был написан в этом модуле, он будет применяться ко всем листам в рабочей книге. Предположим, что если мы напишем код события для рабочей книги, то всякий раз, когда это событие происходит на каком-либо из листов рабочей книги, будет выполняться макрос. Предположим, что если мы напишем событие для «Новый лист», то всякий раз, когда мы создаем новый лист, для этой книги будет запускаться макрос.

как написать код в vba. vba code 7. как написать код в vba фото. как написать код в vba-vba code 7. картинка как написать код в vba. картинка vba code 7. Всем привет, в этой статье я хочу показать Вам полезные коды небольших программ. Которые Вы можете использовать для написания уже своих более серьезных программ, ну или Вы искали именно эти функции, которые здесь описаны.

Модуль: Обычно мы будем писать код в модулях на VBA. Нам нужно вставить модуль, щелкнув по меню «Вставка» и выбрав опцию модуля, чтобы вставить модуль.

как написать код в vba. vba code 4. как написать код в vba фото. как написать код в vba-vba code 4. картинка как написать код в vba. картинка vba code 4. Всем привет, в этой статье я хочу показать Вам полезные коды небольших программ. Которые Вы можете использовать для написания уже своих более серьезных программ, ну или Вы искали именно эти функции, которые здесь описаны.

Точно так же мы можем вставить модуль класса и форму пользователя также. Это модули, в которые мы можем написать наш код. В зависимости от типа требования мы должны выбрать модуль и написать в нем код.

Примеры написания и запуска кода в Excel VBA

Ниже приведены различные примеры написания и запуска кода с использованием кода VBA в Excel.

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

как написать код в vba. vba code 8. как написать код в vba фото. как написать код в vba-vba code 8. картинка как написать код в vba. картинка vba code 8. Всем привет, в этой статье я хочу показать Вам полезные коды небольших программ. Которые Вы можете использовать для написания уже своих более серьезных программ, ну или Вы искали именно эти функции, которые здесь описаны.

Выполните следующие шаги, чтобы написать код в Excel VBA.

Шаг 1: Любая программа в VBA начинается с дополнительного ключевого слова и имени программы с открытыми и закрытыми скобками, как показано ниже. Когда мы введем после скобок автоматически появится «End Sub».

как написать код в vba. vba code 9. как написать код в vba фото. как написать код в vba-vba code 9. картинка как написать код в vba. картинка vba code 9. Всем привет, в этой статье я хочу показать Вам полезные коды небольших программ. Которые Вы можете использовать для написания уже своих более серьезных программ, ну или Вы искали именно эти функции, которые здесь описаны.

Шаг 2: между ними мы должны написать наш код.

как написать код в vba. vba code 10. как написать код в vba фото. как написать код в vba-vba code 10. картинка как написать код в vba. картинка vba code 10. Всем привет, в этой статье я хочу показать Вам полезные коды небольших программ. Которые Вы можете использовать для написания уже своих более серьезных программ, ну или Вы искали именно эти функции, которые здесь описаны.

Шаг 3: Мы можем запустить код, нажав F5 или щелкнув по кнопке запуска вверху, которая отмечена черным цветом.

как написать код в vba. vba code 11. как написать код в vba фото. как написать код в vba-vba code 11. картинка как написать код в vba. картинка vba code 11. Всем привет, в этой статье я хочу показать Вам полезные коды небольших программ. Которые Вы можете использовать для написания уже своих более серьезных программ, ну или Вы искали именно эти функции, которые здесь описаны.

Шаг 4: Как только мы нажмем на запуск, всплывающее окно попросит выполнить запуск, как показано ниже. Если доступно несколько макросов, необходимо выбрать правильный макрос и нажать кнопку запуска.

как написать код в vba. vba code 12. как написать код в vba фото. как написать код в vba-vba code 12. картинка как написать код в vba. картинка vba code 12. Всем привет, в этой статье я хочу показать Вам полезные коды небольших программ. Которые Вы можете использовать для написания уже своих более серьезных программ, ну или Вы искали именно эти функции, которые здесь описаны.

Шаг 5: перейдите в Excel и проверьте, появляются ли результаты, как показано ниже.

как написать код в vba. vba code 13. как написать код в vba фото. как написать код в vba-vba code 13. картинка как написать код в vba. картинка vba code 13. Всем привет, в этой статье я хочу показать Вам полезные коды небольших программ. Которые Вы можете использовать для написания уже своих более серьезных программ, ну или Вы искали именно эти функции, которые здесь описаны.

Если мы хотим запустить макрос из самого листа с помощью фигуры, мы можем это сделать. Выполните следующие шаги, чтобы назначить макрос фигурам.

Шаг 1: Перейдите на «Вставка» и выберите фигуру по вашему желанию.

как написать код в vba. vba code 14. как написать код в vba фото. как написать код в vba-vba code 14. картинка как написать код в vba. картинка vba code 14. Всем привет, в этой статье я хочу показать Вам полезные коды небольших программ. Которые Вы можете использовать для написания уже своих более серьезных программ, ну или Вы искали именно эти функции, которые здесь описаны.

Шаг 2: После выбора формы нарисуйте это на своем рабочем листе.

как написать код в vba. vba code 15. как написать код в vba фото. как написать код в vba-vba code 15. картинка как написать код в vba. картинка vba code 15. Всем привет, в этой статье я хочу показать Вам полезные коды небольших программ. Которые Вы можете использовать для написания уже своих более серьезных программ, ну или Вы искали именно эти функции, которые здесь описаны.

Шаг 3: Теперь мы можем написать текст, например, «нажмите здесь» или «запустить макрос» в этой форме. Для добавления текста просто щелкните правой кнопкой мыши на фигуре и выберите Редактировать текст

как написать код в vba. vba code 16. как написать код в vba фото. как написать код в vba-vba code 16. картинка как написать код в vba. картинка vba code 16. Всем привет, в этой статье я хочу показать Вам полезные коды небольших программ. Которые Вы можете использовать для написания уже своих более серьезных программ, ну или Вы искали именно эти функции, которые здесь описаны.

Шаг 4: Добавьте слово согласно вашему желанию. Я добавил слово « Run Macro ».

как написать код в vba. vba code 17. как написать код в vba фото. как написать код в vba-vba code 17. картинка как написать код в vba. картинка vba code 17. Всем привет, в этой статье я хочу показать Вам полезные коды небольших программ. Которые Вы можете использовать для написания уже своих более серьезных программ, ну или Вы искали именно эти функции, которые здесь описаны.

Шаг 5: Теперь нам нужно назначить макрос для этой фигуры, для этого выберите фигуру, щелкните правой кнопкой мыши и выберите « Назначить макрос ».

как написать код в vba. vba code 18. как написать код в vba фото. как написать код в vba-vba code 18. картинка как написать код в vba. картинка vba code 18. Всем привет, в этой статье я хочу показать Вам полезные коды небольших программ. Которые Вы можете использовать для написания уже своих более серьезных программ, ну или Вы искали именно эти функции, которые здесь описаны.

Шаг 6: появится всплывающее окно с запросом выбора макроса. Выберите имя макроса и нажмите кнопку ОК.

как написать код в vba. vba code 19. как написать код в vba фото. как написать код в vba-vba code 19. картинка как написать код в vba. картинка vba code 19. Всем привет, в этой статье я хочу показать Вам полезные коды небольших программ. Которые Вы можете использовать для написания уже своих более серьезных программ, ну или Вы искали именно эти функции, которые здесь описаны.

Шаг 7: Теперь, если мы нажмем на форму, макрос запустится и выдаст результат, как показано ниже.

как написать код в vba. vba code 20. как написать код в vba фото. как написать код в vba-vba code 20. картинка как написать код в vba. картинка vba code 20. Всем привет, в этой статье я хочу показать Вам полезные коды небольших программ. Которые Вы можете использовать для написания уже своих более серьезных программ, ну или Вы искали именно эти функции, которые здесь описаны.

Как сохранить макрокоманду?

Мы все знаем, как сохранить рабочую книгу. Сохранение макроса также не изменилось, но есть одно небольшое изменение. У нас есть два разных способа сохранить наши макро-файлы.

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

как написать код в vba. vba code 21. как написать код в vba фото. как написать код в vba-vba code 21. картинка как написать код в vba. картинка vba code 21. Всем привет, в этой статье я хочу показать Вам полезные коды небольших программ. Которые Вы можете использовать для написания уже своих более серьезных программ, ну или Вы искали именно эти функции, которые здесь описаны.

По умолчанию мы можем использовать « книгу с макросами Excel ». В случае, если вы хотите использовать в качестве стандартного файла в качестве отправной точки для других файлов, используйте формат «Шаблон макросов Excel».

То, что нужно запомнить

Рекомендуемые статьи

Это руководство по VBA Code в Excel. Здесь мы узнаем, как копировать, вставлять и запускать код VBA в Excel вместе с простыми и практичными примерами. Ниже приведены несколько полезных статей о Excel, связанных с VBA.

Источник

VBA Excel. Начинаем программировать с нуля

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

Начинаем программировать с нуля
Часть 1. Первая программа
[Часть 1] [Часть 2] [Часть 3] [Часть 4]

Знакомство с редактором VBA

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

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

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

После нажатия кнопки «Module» вы увидите ссылку на него, появившуюся в проводнике слева.

Первая программа на VBA Excel

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

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

В результате откроется окно добавления шаблона процедуры (Sub).

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

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

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

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

Функция MsgBox выводит информационное сообщение с указанным текстом. В нашем примере – это «Привет».

как написать код в vba. picture62. как написать код в vba фото. как написать код в vba-picture62. картинка как написать код в vba. картинка picture62. Всем привет, в этой статье я хочу показать Вам полезные коды небольших программ. Которые Вы можете использовать для написания уже своих более серьезных программ, ну или Вы искали именно эти функции, которые здесь описаны.
Если вы увидели такое сообщение, как на изображении, то, поздравляю – вы написали свою первую программу!

Работа с переменными

Чтобы использовать в процедуре переменные, их необходимо объявить с помощью ключевого слова «Dim». Если при объявлении переменных не указать типы данных, они смогут принимать любые доступные в VBA Excel значения. Комментарии в тексте процедур начинаются со знака «’» (апостроф).

Пример 2
Присвоение переменным числовых значений:

Источник

Как записать макрос в Excel? Пошаговая инструкция.

как написать код в vba. 750 b9fe8d56a6759b950646d7d63d3373d2. как написать код в vba фото. как написать код в vba-750 b9fe8d56a6759b950646d7d63d3373d2. картинка как написать код в vba. картинка 750 b9fe8d56a6759b950646d7d63d3373d2. Всем привет, в этой статье я хочу показать Вам полезные коды небольших программ. Которые Вы можете использовать для написания уже своих более серьезных программ, ну или Вы искали именно эти функции, которые здесь описаны.

Что такое макрос?

Для начала немного о терминологии.

Записанный макрос можно будет запускать неограниченное количество раз и Excel повторит все записанные шаги. Это означает, что даже если вы ничего не знаете о VBA, вы можете автоматизировать некоторые задачи, просто записав свои шаги и затем повторно использовать их позже.

Теперь давайте погрузимся и посмотрим, как записать макрос в Excel.

Отображение вкладки «Разработчик» в ленте меню

Перед тем как записывать макрос, нужно добавить на ленту меню Excel вкладку «Разработчик». Для этого выполните следующие шаги:

В результате на ленте меню появится вкладка «Разработчик»

как написать код в vba. 202 b9fe8d56a6759b950646d7d63d3373d2. как написать код в vba фото. как написать код в vba-202 b9fe8d56a6759b950646d7d63d3373d2. картинка как написать код в vba. картинка 202 b9fe8d56a6759b950646d7d63d3373d2. Всем привет, в этой статье я хочу показать Вам полезные коды небольших программ. Которые Вы можете использовать для написания уже своих более серьезных программ, ну или Вы искали именно эти функции, которые здесь описаны.

Запись макроса в Excel

Теперь давайте запишем очень простой макрос, который выбирает ячейку и вводит в нее текст, например «Excel».

Вот шаги для записи такого макроса:

Поздравляем! Вы только что записали свой первый макрос в Excel. Хотя макрос не делает ничего полезного, но он поможет нам понять как работает макрорекордер в Excel.

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

Вы увидите, что как только вы нажмете кнопку «Выполнить», текст «Excel» будет вставлен в ячейку A2 и выбрана ячейка A3. Это происходит за миллисекунды. Но на самом деле макрос последовательно выполнил записанные действия.

Примечание. Вы также можете запустить макрос с помощью сочетания клавиш Ctrl + Shift + N (удерживайте клавиши Ctrl и Shift, а затем нажмите клавишу N). Это тот же самый ярлык, который мы назначили макросу при его записи.

Что записывает макрос?

Теперь перейдем к редактору кода и посмотрим что у нас получилось.

Вот шаги по открытию редактора VB в Excel:

Вы также можете использовать комбинацию клавиш Alt + F11 и перейти в редактор кода VBA.

Рассмотрим сам редактор кода. Далее коротко опишем интерфейс редактора.

как написать код в vba. 801 b9fe8d56a6759b950646d7d63d3373d2. как написать код в vba фото. как написать код в vba-801 b9fe8d56a6759b950646d7d63d3373d2. картинка как написать код в vba. картинка 801 b9fe8d56a6759b950646d7d63d3373d2. Всем привет, в этой статье я хочу показать Вам полезные коды небольших программ. Которые Вы можете использовать для написания уже своих более серьезных программ, ну или Вы искали именно эти функции, которые здесь описаны.

Когда мы записали макрос «ВводТекста», в редакторе VB произошли следующие вещи:

Поэтому, если вы дважды щелкните по модулю (в нашем случае модуль 1), появится окно кода, как показано ниже.

как написать код в vba. 353 b9fe8d56a6759b950646d7d63d3373d2. как написать код в vba фото. как написать код в vba-353 b9fe8d56a6759b950646d7d63d3373d2. картинка как написать код в vba. картинка 353 b9fe8d56a6759b950646d7d63d3373d2. Всем привет, в этой статье я хочу показать Вам полезные коды небольших программ. Которые Вы можете использовать для написания уже своих более серьезных программ, ну или Вы искали именно эти функции, которые здесь описаны.

Вот код, который записан макрорекодером:

Теперь давайте пробежим по каждой строке кода и опишем что и зачем.

Надеюсь, что у вас есть некоторое базовое понимание того, как записывать макрос в Excel.

Абсолютная и относительная запись макроса

Если вы используете параметр относительной ссылки для записи макроса, VBA не будет привязываться к конкретному адресу ячейки. В этом случае программа будет «двигаться» относительно активной ячейки. Например, предположим, что вы уже выбрали ячейку A1, и вы начинаете запись макроса в режиме относительной ссылки. Теперь вы выбираете ячейку A2, вводите текст Excel и нажмите клавишу Enter. Теперь, если вы запустите этот макрос, он не вернется в ячейку A2, вместо этого он будет перемещаться относительно активной ячейки. Например, если выбрана ячейка B3, она переместится на B4, запишет текст «Excel» и затем перейдет к ячейке K5.

Теперь давайте запишем макрос в режиме относительных ссылок:

Макрос в режиме относительных ссылок будет сохранен.

Теперь сделайте следующее.

Вот код, который записал макрорекодер:

как написать код в vba. 750 b9fe8d56a6759b950646d7d63d3373d2. как написать код в vba фото. как написать код в vba-750 b9fe8d56a6759b950646d7d63d3373d2. картинка как написать код в vba. картинка 750 b9fe8d56a6759b950646d7d63d3373d2. Всем привет, в этой статье я хочу показать Вам полезные коды небольших программ. Которые Вы можете использовать для написания уже своих более серьезных программ, ну или Вы искали именно эти функции, которые здесь описаны.

Обратите внимание, что в коде нет ссылок на ячейки B3 или B4. Макрос использует Activecell для ссылки на текущую ячейку и смещение относительно этой ячейки.

Не обращайте внимание на часть кода Range(«A1»). Это один из тех случаев, когда макрорекодер добавляет ненужный код, который не имеет никакой цели и может быть удален. Без него код будет работать отлично.

Что нельзя сделать с помощью макрорекодера?

Макро-рекордер отлично подходит для вас в Excel и записывает ваши точные шаги, но может вам не подойти, когда вам нужно сделать что-то большее.

Расширение файлов Excel, которые содержат макросы

Когда вы записываете макрос или вручную записываете код VBA в Excel, вам необходимо сохранить файл с расширением файла с поддержкой макросов (.xlsm).

как написать код в vba. 864 b9fe8d56a6759b950646d7d63d3373d2. как написать код в vba фото. как написать код в vba-864 b9fe8d56a6759b950646d7d63d3373d2. картинка как написать код в vba. картинка 864 b9fe8d56a6759b950646d7d63d3373d2. Всем привет, в этой статье я хочу показать Вам полезные коды небольших программ. Которые Вы можете использовать для написания уже своих более серьезных программ, ну или Вы искали именно эти функции, которые здесь описаны.

Источник

Автоматизация рутины в Microsoft Excel при помощи VBA

В этом посте я расскажу, что такое VBA и как с ним работать в Microsoft Excel 2007/2010 (для более старых версий изменяется лишь интерфейс — код, скорее всего, будет таким же) для автоматизации различной рутины.

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

VBA (Visual Basic for Applications) — это упрощенная версия Visual Basic, встроенная в множество продуктов линейки Microsoft Office. Она позволяет писать программы прямо в файле конкретного документа. Вам не требуется устанавливать различные IDE — всё, включая отладчик, уже есть в Excel.

Еще при помощи Visual Studio Tools for Office можно писать макросы на C# и также встраивать их. Спасибо, FireStorm.

Сразу скажу — писать на других языках (C++/Delphi/PHP) также возможно, но требуется научится читать, изменять и писать файлы офиса — встраивать в документы не получится. А интерфейсы Microsoft работают через COM. Чтобы вы поняли весь ужас, вот Hello World с использованием COM.

Поэтому, увы, будем учить Visual Basic.

Чуть-чуть подготовки и постановка задачи

Итак, поехали. Открываем Excel.

Для начала давайте добавим в Ribbon панель «Разработчик». В ней находятся кнопки, текстовые поля и пр. элементы для конструирования форм.

как написать код в vba. image loader. как написать код в vba фото. как написать код в vba-image loader. картинка как написать код в vba. картинка image loader. Всем привет, в этой статье я хочу показать Вам полезные коды небольших программ. Которые Вы можете использовать для написания уже своих более серьезных программ, ну или Вы искали именно эти функции, которые здесь описаны.как написать код в vba. image loader. как написать код в vba фото. как написать код в vba-image loader. картинка как написать код в vba. картинка image loader. Всем привет, в этой статье я хочу показать Вам полезные коды небольших программ. Которые Вы можете использовать для написания уже своих более серьезных программ, ну или Вы искали именно эти функции, которые здесь описаны.

как написать код в vba. image loader. как написать код в vba фото. как написать код в vba-image loader. картинка как написать код в vba. картинка image loader. Всем привет, в этой статье я хочу показать Вам полезные коды небольших программ. Которые Вы можете использовать для написания уже своих более серьезных программ, ну или Вы искали именно эти функции, которые здесь описаны.

Теперь давайте подумаем, на каком примере мы будем изучать VBA. Недавно мне потребовалось красиво оформить прайс-лист, выглядевший, как таблица. Идём в гугл, набираем «прайс-лист» и качаем любой, который оформлен примерно так (не сочтите за рекламу, пожалуйста):

как написать код в vba. image loader. как написать код в vba фото. как написать код в vba-image loader. картинка как написать код в vba. картинка image loader. Всем привет, в этой статье я хочу показать Вам полезные коды небольших программ. Которые Вы можете использовать для написания уже своих более серьезных программ, ну или Вы искали именно эти функции, которые здесь описаны.

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

Результат, которого хотим добиться, выглядит примерно так:

как написать код в vba. image loader. как написать код в vba фото. как написать код в vba-image loader. картинка как написать код в vba. картинка image loader. Всем привет, в этой статье я хочу показать Вам полезные коды небольших программ. Которые Вы можете использовать для написания уже своих более серьезных программ, ну или Вы искали именно эти функции, которые здесь описаны.

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

Кодим

Для начала требуется создать кнопку, при нажатии на которую будет вызываться наша програма. Кнопки находятся в панели «Разработчик» и появляются по кнопке «Вставить». Вам нужен компонент формы «Кнопка». Нажали, поставили на любое место в листе. Далее, если не появилось окно назначения макроса, надо нажать правой кнопкой и выбрать пункт «Назначить макрос». Назовём его FormatPrice. Важно, чтобы перед именем макроса ничего не было — иначе он создастся в отдельном модуле, а не в пространстве имен книги. В этому случае вам будет недоступно быстрое обращение к выделенному листу. Нажимаем кнопку «Новый».

как написать код в vba. image loader. как написать код в vba фото. как написать код в vba-image loader. картинка как написать код в vba. картинка image loader. Всем привет, в этой статье я хочу показать Вам полезные коды небольших программ. Которые Вы можете использовать для написания уже своих более серьезных программ, ну или Вы искали именно эти функции, которые здесь описаны.как написать код в vba. image loader. как написать код в vba фото. как написать код в vba-image loader. картинка как написать код в vba. картинка image loader. Всем привет, в этой статье я хочу показать Вам полезные коды небольших программ. Которые Вы можете использовать для написания уже своих более серьезных программ, ну или Вы искали именно эти функции, которые здесь описаны.

И вот мы в среде разработки VB. Также её можно вызвать из контекстного меню командой «Исходный текст»/«View code».

как написать код в vba. image loader. как написать код в vba фото. как написать код в vba-image loader. картинка как написать код в vba. картинка image loader. Всем привет, в этой статье я хочу показать Вам полезные коды небольших программ. Которые Вы можете использовать для написания уже своих более серьезных программ, ну или Вы искали именно эти функции, которые здесь описаны.как написать код в vba. image loader. как написать код в vba фото. как написать код в vba-image loader. картинка как написать код в vba. картинка image loader. Всем привет, в этой статье я хочу показать Вам полезные коды небольших программ. Которые Вы можете использовать для написания уже своих более серьезных программ, ну или Вы искали именно эти функции, которые здесь описаны.

Перед вами окно с заглушкой процедуры. Можете его развернуть. Код должен выглядеть примерно так:

Напишем Hello World:

Sub FormatPrice()
MsgBox «Hello World!»
End Sub

И запустим либо щелкнув по кнопке (предварительно сняв с неё выделение), либо клавишей F5 прямо из редактора.

Тут, пожалуй, следует отвлечься на небольшой ликбез по поводу синтаксиса VB. Кто его знает — может смело пропустить этот раздел до конца. Основное отличие Visual Basic от Pascal/C/Java в том, что команды разделяются не ;, а переносом строки или двоеточием (:), если очень хочется написать несколько команд в одну строку. Чтобы понять основные правила синтаксиса, приведу абстрактный код.

Примеры синтаксиса

Dim res As sTRING ‘ Регистр в VB не важен. Впрочем, редактор Вас поправит
Dim i As Integer
‘ Цикл всегда состоит из нескольких строк
For i = 1 To 10
res = res + CStr(i) ‘ Конвертация чего угодно в String
If i = 5 Then Exit For
Next i

Dim x As Double
x = Val( «1.234» ) ‘ Парсинг чисел
x = x + 10
MsgBox x

On Error GoTo Err ‘ При ошибке перейти к метке Err
x = 5 / 0
MsgBox «OK!»
GoTo ne

ne:
On Error GoTo 0 ‘ Отключаем обработку ошибок

‘ Циклы бывает, какие захотите
Do While True
Exit Do

Loop ‘While True
Do ‘Until False
Exit Do
Loop Until False
‘ А вот при вызове функций, от которых хотим получить значение, скобки нужны.
‘ Val также умеет возвращать Integer
Select Case LengthSqr(Len( «abc» ), Val( «4» ))
Case 24
MsgBox «0»
Case 25
MsgBox «1»
Case 26
MsgBox «2»
End Select

Грабли-1. При копировании кода из IDE (в английском Excel) есь текст конвертируется в 1252 Latin-1. Поэтому, если хотите сохранить русские комментарии — надо сохранить крокозябры как Latin-1, а потом открыть в 1251.

Грабли-2. Т.к. VB позволяет использовать необъявленные переменные, я всегда в начале кода (перед всеми процедурами) ставлю строчку Option Explicit. Эта директива запрещает интерпретатору заводить переменные самостоятельно.

Грабли-3. Глобальные переменные можно объявлять только до первой функции/процедуры. Локальные — в любом месте процедуры/функции.

Еще немного дополнительных функций, которые могут пригодится: InPos, Mid, Trim, LBound, UBound. Также ответы на все вопросы по поводу работы функций/их параметров можно получить в MSDN.

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

Кодим много и под Excel

В этой части мы уже начнём кодить нечто, что умеет работать с нашими листами в Excel. Для начала создадим отдельный лист с именем result (лист с данными назовём data). Теперь, наверное, нужно этот лист очистить от того, что на нём есть. Также мы «выделим» лист с данными, чтобы каждый раз не писать длинное обращение к массиву с листами.

Sub FormatPrice()
Sheets( «result» ).Cells.Clear
Sheets( «data» ).Activate
End Sub

Работа с диапазонами ячеек

Вся работа в Excel VBA производится с диапазонами ячеек. Они создаются функцией Range и возвращают объект типа Range. У него есть всё необходимое для работы с данными и/или оформлением. Кстати сказать, свойство Cells листа — это тоже Range.

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

Sheets( «result» ).Activate
Dim r As Range
Set r = Range( «A1» )
r.Value = «123»
Set r = Range( «A3,A5» )
r.Font.Color = vbRed
r.Value = «456»
Set r = Range( «A6:A7» )
r.Value = «=A1+A3»

Теперь давайте поймем алгоритм работы нашего кода. Итак, у каждой строчки листа data, начиная со второй, есть некоторые данные, которые нас не интересуют (ID, название и цена) и есть две вложенные группы, к которым она принадлежит (тип и производитель). Более того, эти строки отсортированы. Пока мы забудем про пропуски перед началом новой группы — так будет проще. Я предлагаю такой алгоритм:

Для упрощения работы рекомендую определить следующие функции-сокращения:

Function GetCol(Col As Integer ) As String
GetCol = Chr(Asc( «A» ) + Col)
End Function

Далее определим глобальную переменную «текущая строчка»: Dim CurRow As Integer. В начале процедуры её следует сделать равной единице. Еще нам потребуется переменная-«текущая строка в data», массив с именами групп текущей предыдущей строк. Потом можно написать цикл «пока первая ячейка в строке непуста».

Глобальные переменные

Option Explicit ‘ про эту строчку я уже рассказывал
Dim CurRow As Integer
Const GroupsCount As Integer = 2
Const DataCount As Integer = 3

FormatPrice

Sub FormatPrice()
Dim I As Integer ‘ строка в data
CurRow = 1
Dim Groups(1 To GroupsCount) As String
Dim PrGroups(1 To GroupsCount) As String

Теперь надо заполнить массив Groups:

На месте многоточия

И создать заголовки:

На месте многоточия в предыдущем куске

For I2 = 1 To GroupsCount
If Groups(I2) <> PrGroups(I2) Then
Dim I3 As Integer
For I3 = I2 To GroupsCount
AddHeader I3, Groups(I3)
Next I3
Exit For
End If
Next I2

Не забудем про процедуру AddHeader:

Перед FormatPrice

Теперь надо перенести всякую информацию в result

Подогнать столбцы по ширине и выбрать лист result для показа результата

После цикла в конце FormatPrice

Sheets( «Result» ).Activate
Columns.AutoFit

Всё. Можно любоваться первой версией.

как написать код в vba. image loader. как написать код в vba фото. как написать код в vba-image loader. картинка как написать код в vba. картинка image loader. Всем привет, в этой статье я хочу показать Вам полезные коды небольших программ. Которые Вы можете использовать для написания уже своих более серьезных программ, ну или Вы искали именно эти функции, которые здесь описаны.

Некрасиво, но похоже. Давайте разбираться с форматированием. Сначала изменим процедуру AddHeader:

как написать код в vba. image loader. как написать код в vba фото. как написать код в vba-image loader. картинка как написать код в vba. картинка image loader. Всем привет, в этой статье я хочу показать Вам полезные коды небольших программ. Которые Вы можете использовать для написания уже своих более серьезных программ, ну или Вы искали именно эти функции, которые здесь описаны.

Осталось только сделать границы. Тут уже нам требуется работать со всеми объединёнными ячейками, иначе бордюр будет только у одной:

как написать код в vba. image loader. как написать код в vba фото. как написать код в vba-image loader. картинка как написать код в vba. картинка image loader. Всем привет, в этой статье я хочу показать Вам полезные коды небольших программ. Которые Вы можете использовать для написания уже своих более серьезных программ, ну или Вы искали именно эти функции, которые здесь описаны.

Поэтому чуть-чуть меняем код с добавлением стиля границ:

Select Case Ty
Case 1 ‘ Тип
.Font.Bold = True
.Font.Size = 16
.Borders(xlTop).Weight = xlThick
Case 2 ‘ Производитель
.Font.Size = 12
.Borders(xlTop).Weight = xlMedium
End Select
.Borders(xlBottom).Weight = xlMedium ‘ По убыванию: xlThick, xlMedium, xlThin, xlHairline
End With
CurRow = CurRow + 1
End Sub

как написать код в vba. image loader. как написать код в vba фото. как написать код в vba-image loader. картинка как написать код в vba. картинка image loader. Всем привет, в этой статье я хочу показать Вам полезные коды небольших программ. Которые Вы можете использовать для написания уже своих более серьезных программ, ну или Вы искали именно эти функции, которые здесь описаны.

Осталось лишь добится пропусков перед началом новой группы. Это легко:

В начале FormatPrice

Dim I As Integer ‘ строка в data
CurRow = 0 ‘ чтобы не было пропуска в самом начале
Dim Groups(1 To GroupsCount) As String

В цикле расстановки заголовков

If Groups(I2) <> PrGroups(I2) Then
CurRow = CurRow + 1
Dim I3 As Integer

как написать код в vba. image loader. как написать код в vba фото. как написать код в vba-image loader. картинка как написать код в vba. картинка image loader. Всем привет, в этой статье я хочу показать Вам полезные коды небольших программ. Которые Вы можете использовать для написания уже своих более серьезных программ, ну или Вы искали именно эти функции, которые здесь описаны.

В точности то, что и хотели.

Надеюсь, что эта статья помогла вам немного освоится с программированием для Excel на VBA. Домашнее задание — добавить заголовки «ID, Название, Цена» в результат. Подсказка: CurRow = 0 CurRow = 1.

Файл можно скачать тут (min.us) или тут (Dropbox). Не забудьте разрешить исполнение макросов. Если кто-нибудь подскажет человеческих файлохостинг, залью туда.

Спасибо за внимание.

Буду рад конструктивной критике в комментариях.

UPD: Перезалил пример на Dropbox и min.us.

UPD2: На самом деле, при вызове процедуры с одним параметром скобки можно поставить. Либо использовать конструкцию Call Foo(«bar», 1, 2, 3) — тут скобки нужны постоянно.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *