VBA (Visual Basic Application) — интерпретируемый язык программирования, встроенный в Microsoft Office. Он позволяет производить математические расчёты, реализовывать большой спектр алгоритмических задач. С его помощью можно управлять Excel и другими приложениями Microsoft Office. Также, с его помощью возможно осуществлять управление сторонними приложениями в операционной системе Windows.
Здесь будут рассмотрены возможности VBA применительно к Excel. При использовании VBA следует придерживаться нескольких важных правил:
- Нужно ли создавать программу на VBA? Да, если решить задачу другими встроенными средствами Excel не возможно или очень сложно. А, также, для автоматизации рутинных повторяющихся операций.
- При создании программы следует разделять её на несколько файлов. 1. Файл с программой. 2. Файлы с исходными данными (справочники). 3. Текстовые файлы с основой кодов Power Query. 4. Конечные файлы с итоговыми данными и их визуализацией.
- Программный код логически разделить на модули.
- Разделить функционал программы с использованием VBA на взаимодействие с файлом и обработку данных.
- При взаимодействии с файлом отключать визуализацию процессов внутри офисного приложения.
- Для циклического взаимодействия с данными следует придерживаться определенной последовательности. 1. Открыть файл. 2. Скопировать данные в массив. 3. Закрыть файл. 4. Провести взаимодействие с данными. 5. Открыть файл. 6. Скопировать данные в файл. 7. Закрыть файл. 8. Удалить массив.
- Некоторыми функциями сортировки и прочими встроенными функциями Excel лучше пользоваться непосредственно в таблицах.
- Обработку больших объемов данных осуществлять с помощью Power Query: Открыть файл с данными, открыть текстовый файл с основой скрипта Power Query и скопировать основу скрипта в программу, закрыть текстовый файл с основой скрипта, изменить скрипт Power Query, применить скрипт Power Query к файлу с данными, закрыть файл с данными.
- Для конвертации файла в различные кодировки использовать Notepad++ по средством управления данной программой из VBA.