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

Цель работы – Изучение основных операторов и реализации основных конструкций программирования в языке VBA.

4.1 Основные этапы работы с программами на vba в Excel

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

в Excel выбрать из меню команду Сервис – Макрос – Редактор Visual Basic ;

в появившемся окне выбрать из меню команду Insert – Module . Создается модуль, т.е., упрощенно говоря, открывается окно, в котором можно вводить текст программы.

В начале модуля может указываться инструкция Option Explicit . Если она указана, то все переменные, используемые в программе, необходимо будет объявлять в операторе Dim (подробнее об этом см. в подразделе 4.3).

В некоторых случаях, в зависимости от настройки среды VBA, инструкция Option Explicit указывается в начале модуля автоматически. Если программист желает использовать переменные, не объявляя их в операторе Dim , то инструкцию Option Explicit необходимо удалить.

Для запуска программы на выполнение необходимо выбрать из меню команду Run – Run Sub/UserForm .

Макросы Excel для начинающих | Программирование в excel VBA примеры

4.2 Простейший пример программы на языке vba

Пример 4.1 – Программа, возводящаяуказанное число a в указанную степень b .

Dim a As Single, b As Single

a = InputBox(“Введите основание: ”)

b = InputBox(“Введите показатель степени: ”)

x = a^b ‘Возведение в степень

MsgBox(“Результат равен ” ее имя в данном случае – primer 4_1 . Программа на языке VBA всегда состоит из одной или нескольких процедур (в данном случае – из одной).

Символ ‘ (одиночная кавычка) обозначает начало комментария. Текст комментария может быть любым.

Dim – оператор объявления переменных. В данном случае указано, что переменные a и b имеют тип Single . т.е. могут представлять собой как целые, так и дробные числа. Подробнее типы данных и объявление переменных будут рассмотрены в подразделе 4.3.

InputBox – функция для ввода значения переменной. Строка a = InputBox (“Введите основание: ”) означает, что вводится значение переменной a ; при этом на экран выводится сообщение “Введите основание:” . Строка x = a ^ b – оператор присваивания: вычисляется значение правой части (в данном случае переменная a возводится в степень b ), и результат присваивается переменной, указанной в левой части (в данном случае – переменной x ). Строка MsgBox (“Результат равен ” в функции MsgBox предназначен для сцепления нескольких элементов данных, которые требуется вывести на экран, в данном примере – строки “Результат равен” и переменной x . Аналогично знак и после него обязательно должны быть указаны пробелы.

В одной строке можно разместить несколько операторов языка VBA. Для этого они разделяются символами «двоеточие». Так, программу из примера 4.1 можно было записать, например, следующим образом:

‘Первый пример программы на VBA

Dim a As Single, b As Single

a = InputBox(“Введите основание: ”) : b = InputBox(“Введите показатель степени: ”)

Программирование макросов на VBA в Excel

x = a^b: MsgBox(“Результат равен ” Процедура Sub выполняет поиск ячейки, содержащей заданную строку «в диапазоне ячеек A1:A100 активного листа Sub Find_String(sFindText As String) Dim i As Integer «Целое число типа Integer, используется в цикле For Dim iRowNumber As Integer «Целое число типа Integer для хранения результата iRowNumber = 0 «Просматривает одну за другой ячейки A1:A100 до тех пор, пока не будет найдена строка sFindText For i = 1 To 100 If Cells(i, 1).Value = sFindText Then «Если совпадение с заданной строкой найдено «сохраняем номер текущей строки и выходим из цикла For iRowNumber = i Exit For End If Next i «Сообщаем пользователю во всплывающем окне найдена ли искомая строка «Если заданная строка найдена, указываем в какой ячейке найдено совпадение If iRowNumber = 0 Then MsgBox «Строка » » не найдена» Else MsgBox «Строка » » найдена в ячейке A» Процедура Sub выводит числа Фибоначчи, не превышающие 1000 Sub Fibonacci() Dim i As Integer «Счётчик для обозначения позиции элемента в последовательности Dim iFib As Integer «Хранит текущее значение последовательности Dim iFib_Next As Integer «Хранит следующее значение последовательности Dim iStep As Integer «Хранит размер следующего приращения «Инициализируем переменные i и iFib_Next i = 1 iFib_Next = 0 «Цикл Do While будет выполняться до тех пор, пока значение «текущего числа Фибоначчи не превысит 1000 Do While iFib_Next 0 Then Cells(1, 1).Value = 1

If x=0 Then Cells(1, 1).Value = 0

Читайте также:
Получить рут права на Андроид без компьютера и программ

Наталья Комарова , 28.05.2009 (25.03.2018 ) Когда читаешь форум или блог, запоминаешь авторов сообщений по нику и … по картинке пользователя, так называемому аватару.

Источник: gikk.ru

Примеры VBA

Макросы — ваши лучшие друзья, когда речь идет о повышении производительности или экономии времени на рабочем месте. От маленьких до больших задач мы можем автоматизировать с помощью языка программирования VBA. Мы знаем, что вы часто думали о некоторых ограничениях Excel, но с кодированием VBA вы можете устранить все это. Если вы боролись с VBA и все еще новичок в этой статье, мы приведем несколько полезных примеров кода VBA Macro в Excel. Оглавление

  • Примеры Excel VBA для начинающих
  • Список 19 лучших примеров
  • # 1 — Распечатать все имена листов
  • # 2 — Вставьте другой цветовой индекс в VBA
  • #3 – Вставьте серийный номер сверху
  • #4 – Вставьте серийный номер снизу
  • #5 — Вставьте серийный номер от 10 до 1
  • # 6 — Вставляйте рабочие листы столько, сколько хотите
  • #7 – Удалить все пустые листы из рабочей книги
  • #8 – Вставьте пустую строку после каждой другой строки
  • #9 – Выделите орфографическую ошибку
  • #10 – Изменить все символы верхнего регистра
  • #11 – Изменить все символы нижнего регистра
  • #12 – Выделите все прокомментированные ячейки
  • #13 – Выделите все пустые ячейки
  • #14 – Скрыть все листы, кроме одного листа
  • #15 – Показать все листы
  • #16 – Удалить все файлы в папке
  • #17 – Удалить всю папку
  • #18 – Найти последнюю использованную строку в листе
  • # 19 — Найдите последний использованный столбец на листе

VBA-Примеры-1

Программы для Windows, мобильные приложения, игры — ВСЁ БЕСПЛАТНО, в нашем закрытом телеграмм канале — Подписывайтесь:)

Список 19 лучших примеров

  1. Распечатать все имена листов
  2. Вставить другой цветовой индекс в VBA
  3. Вставьте серийный номер сверху
  4. Вставьте серийный номер снизу
  5. Вставьте серийный номер от 10 до 1
  6. Вставляйте рабочие листы столько, сколько хотите
  7. Удалить все пустые листы из книги
  8. Вставить пустую строку после каждой второй строки
  9. Выделите орфографическую ошибку
  10. Изменить все символы верхнего регистра
  11. Изменить все символы нижнего регистра
  12. Выделите все прокомментированные ячейки
  13. Выделите все пустые ячейки
  14. Скрыть все листы, кроме одного листа
  15. Показать все листы
  16. Удалить все файлы в папке
  17. Удалить всю папку
  18. Найти последнюю использованную строку на листе
  19. Найти последний использованный столбец на листе

Давайте рассмотрим каждый из этих примеров подробно.

# 1 — Распечатать все имена листов

Код:

Sub Print_Sheet_Names() Dim i As Integer For i = 1 To Sheets.Count Cells(i, 1).Value = Sheets(i).Name Next i End Sub

Он извлечет все имена листов на активный лист.

# 2 — Вставьте другой цветовой индекс в VBA

Код:

Sub Insert_Different_Colours() Dim i As Integer For i = 1 To 56 Cells(i, 1).Value = i Cells(i, 2).Interior.ColorIndex = i Next End Sub

Он вставит числа от 1 до 56 и их цветовой индекс в следующий столбец.

#3 – Вставьте серийный номер сверху

Код:

Sub Insert_Numbers_From_Top() Dim i As Integer For i = от 1 до 10 ячеек (i, 1).Value = i Next i End Sub

Он будет вставлять серийные номера от 1 до 10 сверху.

#4 – Вставьте серийный номер снизу

Код:

Sub Insert_Numbers_From_Bottom() Dim i As Integer For i = 20 To 1 Step -1 Cells(i, 7).Value = i Next i End Sub

Он будет вставлять серийные номера от 1 до 20 снизу.

#5 — Вставьте серийный номер от 10 до 1

Код:

Sub Ten_To_One() Dim i As Integer Dim j As Integer j = 10 For i = 1 To 10 Range(«A» > «Main Sheet» Then Ws.Visible = xlSheetVeryHidden Next Ws End Sub

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

#15 – Показать все листы

Код:

Sub UnHide_All() Dim Ws As Worksheet для каждого Ws в ActiveWorkbook.Worksheets Ws.Visible = xlSheetVisible Next Ws End Sub

Это покажет все скрытые листы.

#16 – Удалить все файлы в папке

Код:

Sub Delete_All_Files() ‘Вы можете использовать это, чтобы удалить все файлы в папке Test » Возобновить при ошибке NextError Resume NextVBA Заявление о возобновлении ошибки — это аспект обработки ошибок, используемый для игнорирования строки кода, из-за которой произошла ошибка, и продолжения со следующей строкой сразу после строки кода с ошибкой. Подробнее Kill «C:UsersAdmin_2.Dell-PcDesktopDelete Folder*.*» При ошибке GoTo 0 End Sub

Измените путь к папке, отмеченный красным, в соответствии с удалением папки.

#17 – Удалить всю папку

Код:

Sub Delete_Whole_Folder() ‘Вы можете использовать это для удаления всей папки. Возобновление ошибки. NextError Resume. NextVBA On Error Resume Statement. Это аспект обработки ошибок, используемый для игнорирования строки кода, из-за которой произошла ошибка, и продолжения со следующей строки сразу после строка кода с ошибкой. Читать дальше Kill «C:UsersAdmin_2.Dell-PcDesktopDelete Folder*.*» ‘Сначала будут удалены все файлы в папке ‘Затем приведенный ниже код удалит всю папку, если она пуста RmDir «C: UsersAdmin_2.Dell-PcDesktopDelete Folder» ‘Примечание: RmDir удаляет только пустую папку On Error GoTo 0 End Sub

Читайте также:
Как обновить программу на навигаторе навител и карты

Измените путь к папке, отмеченный красным, в соответствии с удалением папки.

#18 – Найти последнюю использованную строку в листе

Код:

Sub Last_Row() Dim LR As Long LR = Cells(Rows.Count, 1).End(xlUp).Row MsgBox LR End Sub

Здесь мы находим последнюю использованную строку в листе.

# 19 — Найдите последний использованный столбец на листе

Код:

Sub Last_Column() Dim LC As Long LC = Cells(1, Columns.Count).End(xlToLeft).Column MsgBox LC End Sub

Здесь мы находим последний использованный столбец на листе.

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

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

  • VBA XLUP
  • CDATE Функция VBA
  • Учебник VBA
  • Рандомизация VBA

Программы для Windows, мобильные приложения, игры — ВСЁ БЕСПЛАТНО, в нашем закрытом телеграмм канале — Подписывайтесь:)

Источник: voxt.ru

diev/Excel-VBA-Collection

This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Switch branches/tags
Branches Tags
Could not load branches
Nothing to show
Could not load tags

Nothing to show

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Cancel Create

  • Local
  • Codespaces

HTTPS GitHub CLI
Use Git or checkout with SVN using the web URL.
Work fast with our official CLI. Learn more about the CLI.

Sign In Required

Please sign in to use Codespaces.

Launching GitHub Desktop

If nothing happens, download GitHub Desktop and try again.

Launching GitHub Desktop

If nothing happens, download GitHub Desktop and try again.

Launching Xcode

If nothing happens, download Xcode and try again.

Launching Visual Studio Code

Your codespace will open once ready.

There was a problem preparing your codespace, please try again.

Latest commit

Git stats

Files

Failed to load latest commit information.

Latest commit message
Commit time

README.md

Формат DBF, конечно, давно уже умер, но Федеральные службы РФ все еще охотно его используют. Например, ФСФМ (ФинМониторинг) требует отправлять ему файлы «в формате DBF», где 244 поля, и некоторые из них — типа C 254. Большинство древних утилиток для обработки DBF сходят с ума от таких объемов, а Excel никогда не сохранял требуемую структуру, более того — еще и даты часто коверкает. Так что даже открыть и посмотреть такой файл — целая проблема, а уж подкорректировать и сохранить как предписано — еще сложнее.

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

dbf161p2015.png

На картинке выше обрабатывается файл в формате Приложения 4 «Структура файла передачи ОЭС» к Положению Банка России от 29 августа 2008 г. N 321-П «О порядке представления кредитными организациями в уполномоченный орган сведений, предусмотренных Федеральным законом «О противодействии легализации (отмыванию) доходов, полученных преступным путем, и финансированию терроризма». Помимо работы с таким форматом, программа также осуществляет контроль правильности заполнения полей по требованиям этого Положения несколькими способами.

Вы можете взять готовый бинарный файл XLSM с этой программой из Downloads и при запуске обязательно разрешить макросы — только тогда появится меню «Надстройки». Если боитесь запускать чужие бинарные файлы и макросы (и это правильно!) — открывайте редактор VBA в своем Excel (может понадобится в Настройках включить меню «Разработчик») и импортируйте туда прилагаемые исходные тексты (здесь они все в кодировке UTF-8).

Читайте также:
Программы похожие на топ гир

Раньше эта программа добавляла свою полосочку с кнопками меню, и все было замечательно. Затем Microsoft изобрела новый Ribbon, и пользовательское меню этой программы оказалась задвинута куда подальше — ищите в меню «Надстройки» — как это показано на скриншоте выше. И не забудьте разрешить макросы — иначе ничего не появится!

  1. Загрузить — загрузить из файла DBF, указанного в ячейке A1, или запросить его имя, если там пусто (текущее содержимое будет очищено)
  2. Добавить — добавить из файла DBF, указанного в ячейке A1, или запросить его имя, если там пусто (текущее содержимое сохранится и будет дополнено)
  3. Просмотр — просмотр всех полей на одной форме с индикацией ошибок
  4. Печать — преобразовать выделенную строку в таблицу на отдельном листе для печати (одна из самых насущных функций и нравится проверяющим из ЦБ)
  5. Проверить — проверить ячейку за ячейкой по заранее составленному перечню правил с индикацией нарушения и возможностью исправить
  6. Сохранить — сохранить в файл DBF, указанный в ячейке A1, или запросить его имя, если там пусто (файл будет сформирован с той структурой, которая в строке 3 — описание см. ниже)
  7. Передать в Комиту — сохранить в файл DBF и передать в папку для импорта в Комиту (специализированный АРМ Финмониторинга)
  8. Отправить в ЦБ — сохранить в файл DBF и передать в папку для отправки на подпись, шифрование и далее в ПТК ПСД для отправки в ЦБ

Загрузка и сохранение

Если в ячейке A1 есть имя файла, при нажатии кнопки «Загрузить» — будет загружен именно этот файл. Если ячейка пуста — будет диалог выбора файла. При сохранении — аналогично. Файлы подразумеваются структуры DBF, хотя расширение их иное! И никогда не сохраняйте DBF через меню самого Excel — он запишет в своей собственной структуре, подогнанной под текущие данные, но не в той, которая регламентирована.

Работа со структурой

Одна из строк (третья на скриншоте) — структура загруженного DBF-файла, состоящая из столбцов-полей следующего вида:

Название отделяется от типа (поддерживаются C, D, L, N) пробелом, размер (в байтах) слитно с типом (у N может быть дробная часть после точки). Тип и размер — или Вы знаете, о чем речь, или это есть в документации по заполнению отчетности. Таким образом, Вы можете прочитать любой DBF-файл (без МЕМО), создать новый или сохранить с новой структурой.

Данные Вы можете копировать и вставлять какие угодно. Сохранение будет происходить в соответствии с указанной выше строкой описания структуры.

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

Все прочие исходные файлы, уже никак не относящиеся к этой задаче, убраны в папку BClient — на случай, если понадобится еще что-то из наработанного ранее.

Также там есть папка Turniket, где находится модуль подчистки грязных входных данных из разных источников СКУД и готовится финальная отчетная таблица с учетом отработанного времени сотрудниками для отдела кадров.

Исходные тексты модулей

Microsoft Excel Objects

  • ЭтаКнига.cls — всего две функции: добавить меню при загрузке Workbook и убрать его по ее закрытию
  • UserForm1.frm — форма полноэкранного просмотра записей
  • Base36.bas — работа с 36-ричными числами, популярными в Банке России
  • Bytes.bas — работа с байтами — для CWinDos
  • ChkData.bas — правила логического контроля настраивать здесь
  • CWinDos.bas — ручная перекодировка 1251-866 с псевдографикой и фишками ЦБ
  • DBF3x.bas — ручная работа в файлами DBF версии 3, загрузка и раскраска их, сохранение с заданной структурой
  • Export.bas — пути экспорта
  • KeyValue.bas — вычисления ключа счета, ИНН
  • Main.bas — начальные инициализации классов, действия по завершении
  • MenuBar.bas — пункты меню
  • MiscFiles.bas — есть ли файл на диске, выбор файла и т.п.
  • MsgBoxes.bas — разные красивые диалоги
  • Printf.bas — аналог функции из языка Си
  • RuSumStr.bas — чтение суммы в любом формате, сумма прописью — для платежек
  • SheetUtils.bas — набросок макроса для сокращенной печати
  • StrFiles.bas — работа с именами файловой системы
  • StrUtils.bas — работа со строками
  • TextFile.bas — работа с текстовыми файлами
  • CApp.cls — класс приложения с константами и параметрами

Источник: github.com

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru