Макросы VBA Excel — Страница 12

Функция для получения всех графических объектов (картинок) в заданном диапазоне ячеек

Функция ShapesInRange предназначена для получения объекта типа ShapeRange, содержащего все картинки в заданном диапазоне ячеек листа Excel

 

Пример использования функции ShapesInRange:

Sub DeleteShapesInRange()
    Dim ra As Range: Set ra = Columns(6) ' задаём диапазон для поиска картинок
    On Error Resume Next    ' на случай, если картинок в заданном диапазоне нет
    ShapesInRange(ra).Delete    ' удаляем все картинки в диапазоне ra
End Sub

Код функции ShapesInRange:

Объединение строк в двумерном массиве

Function JoinedArray(ByVal arr As Variant, ByVal ComparedColumn As Long, _
                     Optional ByVal ColumnsForSum As String, Optional ByVal ColumnsForJoin As String, _
                     Optional ByVal JoinSeparator As String = ", ") As Variant

Эта функция позволяет осуществить объединение строк в двумерном массиве.

функция получает в качестве параметров исходный массив, и номер столбца ComparedColumn,
по которому осуществляется сравнение строк
---------------------------------------------
для совпадающих строк:
- суммируются значения в столбцах, перечисленных через запятую в переменной ColumnsForSum
- соединяются (через разделитель JoinSeparator) значения в столбцах,
перечисленных через запятую в переменной ColumnsForJoin
---------------------------------------------
функция возвращает новый массив (возможно, с меньшей размерностью по вертикали)

Функции для работы с объектами редактора VBA (модулями, формами, и т.п.)

' ========= СПИСОК ФУНКЦИЙ ==============================================
'    Adding A Module To A Project
'    Adding A Procedure To A Module
'    Copy A Module From One Project To Another
'    Creating An Event Procedure
'    Deleting A Module From A Project
'    Deleting A Procedure From A Module
'    Deleting All VBA Code In A Project
'    Eliminating Screen Flicker When Working With The Visual Basic Editor
'    Exporting A VBComponent To A Text File
'    Listing All Procedures In A Module
'    Reading A Procedure Declaration
'    Searching A Module For Text
'    Testing If A VBCompoent Exists
'    Total Code Lines In A Component
'    Total Code Lines In A Project
'    Total Lines In A Project
' ========= СПИСОК ФУНКЦИЙ ==============================================

Функция VB (VBA) для определения продолжительности медиафайла

Получение длительности медиафайла формулой Excel

Узнать продолжительность (время) звучания аудиофайла (MP3, WAV и т.д.), или длительность видеофайла (видеоролика) из Excel совсем несложно.

Проверка ввода числа в текстовое поле на форме VBA

Данный код позволяет выполнять проверку корректности ввода числового значения в текстовое поле (textbox) на форме,
автоматически блокируя ввод запрещенных символов

Заполнение пустых ячеек случайными числами

Макрос перебирает в цикле все ячейки выделенного диапазона,
и в пустые ячейки вставляет случайные числа от 1 до 12:

 

Загрузка данных из закрытой книги Excel в двумерный массив

Sub ПримерИспользования()
    ' задаём полный путь к обрабатываемому файлу
    ПутьКФайлу$ = ThisWorkbook.Path & "\" & "Contract.XLS"
 
    Application.ScreenUpdating = False    '  отключаем обновление экрана
    arr = LoadArrayFromWorkbook(ПутьКФайлу$, "a2", 30)    ' загружаем данные

    ' выводим результаты в окно Immediate
    Debug.Print "Загружен массив размерами " & UBound(arr, 1) & _
                " строк на " & UBound(arr, 2) & " столбцов"
End Sub

Код функции LoadArrayFromWorkbook:

Макрос проверки доступности веб-ресурса

Данная функция позволяет проверить, доступен ли тот или иной веб-ресурс с вашего компьютера, и получить код состояния HTTP

Как известно, при переходе по ссылке (URL), веб-сервер возвращает код состояния HTTP.

Наиболее популярный коды ответа веб-сервера: (перечень всех кодов состояния можно посмотреть в Википедии)

  • 200 OK («хорошо»)
  • 403 Forbidden («запрещено»)
  • 404 Not Found («не найдено»)

Код состояния - это целое число из 3 цифр.
По первой цифре можно определить, доступен ли ресурс: если первая цифра 2, то ресурс доступен, если любая другая - то скорее всего нет.

Пример макроса, проверяющего доступ к различным ресурсам по URL:

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

Данный код добавляет в контекстное меню ячейки два новых действия:

1. Вставить только значения;
2. Вставить значения с транспонированием.

Макрос для сортировки листов книги Excel по алфавиту

Sub SortSheets()    ' сортировка листов книги по алфавиту

Sub Sort(astrNames() As String)    ' Сортировка массива строк по алфавиту (в порядке возрастания)