Архив рубрики: VBA

VBA и различные разработки под MS Office

VBA Access SQL — делаем запрос из макросов

VBA Access SQL

Периодически я вижу, как пытаются найти информацию: а как можно сделать запрос через SQL и макросов VBA? Сегодня я постараюсь осветить данную область и рассказать про связь VBA Access SQL.

Читать далее VBA Access SQL — делаем запрос из макросов

Подключение библиотек в VBA — VBA load object library

VBA Load Object Library

По долгу службы частенько приходиться использовать дополнительные библиотеки в VBA. А так как потом файлы расходятся по разным компьютерам и не факт, что подключение object library будет сохранено, то пришлось использовать проверку на подключение и само подключение.

Поиск по интернету конечно же не дал окончательного решения и, как всегда, мне пришлось собирать все по крупицам. Первым делом я нашел куски кода на проверку и само подключение библиотек (VBA load object library):

Как видно из кода, для определенной библиотеки object library есть некий уникальный идентификатор, который непонятно где взять…

Читать далее Подключение библиотек в VBA — VBA load object library

Несколько On Error в VBA — VBA On Error

VBA On Error

Я уже писал о моем отношении к конструкции в VBA On Error, но к сожалению, по работе частенько с ней встречаюсь. Поэтому сегодня я расскажу об ее одной особенности.

У меня есть макрос в Microsoft Outlook для генерации письма с поиском конкретных вложений. Раньше использовался весь потенциал конструкции VBA On Error, где первоначально шла проверка наличия самих вложений, и как следствие создания письма, и проверка одного отдельного отчета, который мог присутствовать, а мог и отсутствовать…

Позднее мне понадобилось добавить еще одну проверку нового отчета, наличие которого происходило по новой методике условий. Я решил отделаться легким испугом и дописать вторую проверку наличия вложения через VBA On Error GoTo, заметил, что если первый On Error GoTo срабатывал, то второй всегда завершился ошибкой, как-будто он не обрабатывался…
Внимательно почитав документацию и поискав в Google, я понял, что данная конструкция работает один раз в рамках процедуры или функции и решения данной проблемы нет. Именно по этому мне пришлось найти новое решение проверки вложений, о котором я писал ранее, и отказаться от всех конструкций VBA On Error!

Помните, использование конструкции в VBA On Error — это не выход из ситуации, а просто временный костыль, который в будущем может только усложнить доработку программы, старайтесь не пользоваться данной обработкой ошибок!

Проверка существования файла в VBA — VBA Check File

Функция поиска файлов (vba check file)

Все больше замечаю, что многие люди в VBA пользуются конструкцией On Error для проверки ошибок, в частности с оператором GoTo. Я очень не люблю данный оператор, т.к. он затрудняет чтение кода и отладку, да и прыжки в программе не благодарное дело… Поэтому я расскажу, как проверить существование файла (vba check file) более цивилизованными методами.

Функция Dir$(<путь>, <параметры>) — где в качестве первого параметра передаем путь директории или файла, а второго — параметры поиска файлов.

Пример:

Данная функция вернет либо пустую строку, если файла или директории не существует, либо имя файла «test.txt». Для того, чтобы проверить, существует ли файл в директории (vba check file), достаточно длину данной строки проверить с нулем:

Вот таким простым способом можно организовать проверку.

Использование CRC32 в VBA — vba crc32 check sum

Как-то по работе мне понадобилось средствами VBA отслеживать изменение Excel-файла (vba crc32 check sum). Первое что пришло на ум, это подсчет CRC32 check sum. Спустя пару часов брожения по интернету, я смог найти и собрать необходимые функции в модуль.

Читать далее Использование CRC32 в VBA — vba crc32 check sum