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

Сохранение двумерного массива в файл

Функция предназначена для сохранения двумерного массива в файл формата XLS

Sub SaveArray(ByVal Arr, ByVal ColumnNames, ByVal DocName$)
    ' Получает двумерный массив Arr с данными, и массив заголовков столбцов ColumnNames.
    ' Создаёт новый файл в подпапке СФОРМИРОВАННЫЕ ДОКУМЕНТЫ с именем DocName$
    On Error Resume Next
 
    ' создаём подпапку (там же, где текущий файл Excel)
    folder$ = ThisWorkbook.Path & "\СФОРМИРОВАННЫЕ ДОКУМЕНТЫ\": MkDir folder$
 
    Application.ScreenUpdating = False
    Dim sh As Worksheet, wb As Workbook

Преобразование URL национального домена в punycode

При использовании компонента WinHTTPrequest для выполнения запроса к сайту,
требуется предварительно преобразовать URL национальных доменов с использованием метода Punycode.

PS: если вы загружаете исходный код вебстраницы с использованием WinAPI функции URLDownloadToFile, - подобное преобразование не обязательно

Sub ПримерИспользования_ConvertURLtoPunycode()
    Dim host$, newURL$
 
    ' исходная ссылка
    host$ = "http://государство.президент.рф/советы"
 
    ' результат преобразования: "http://xn--80aebe3cdmfdkg.xn--d1abbgf6aiiy.xn--p1ai/%D1%81%D0%BE%D0%B2%D0%B5%D1%82%D1%8B"
    newURL$ = ConvertURLtoPunycode(host$)
    MsgBox newURL$
End Sub

Автор функции преобразования: Achim Neubauer
Источник: www.herber.de/forum/archiv/1192to1196/1192164_Punycode_Unicode.html

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

Вывод информации о надстройках, установленных в Excel

Макрос ShowAddinsList выводит список надстроек, подключенных в Microsoft Excel:

Sub ShowAddinsList()
    Dim count As Integer, item As AddIn, msg As String, txt1$, txt2$
    For Each item In Application.AddIns
        If item.Installed Then
            txt1$ = txt1$ & vbTab & item.Name & vbNewLine
            count = count + 1
        Else
            txt2$ = txt2$ & vbTab & item.Name & vbNewLine
        End If
    Next item
    msg = "Всего надстроек: " & AddIns.count & vbNewLine & vbNewLine
    msg = msg & "Из них установлено (подключено) - " & count & ":" & vbNewLine & txt1$ & vbNewLine
    msg = msg & "Не подключено надстроек - " & AddIns.count - count & ":" & vbNewLine & txt2$
 
    MsgBox msg, vbInformation, "Информация о подключенных надстройках Excel"
End Sub

Скриншот выводимого сообщения:

Восстановление форматирование гиперссылок

Если вы выделили ячейки с гиперссылками, и случайно изменили их форматирование (цвет шрифта и т.п.),

Макрос открытия гиперссылок в браузере

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

Зачем нужен такой макрос, если можно щелкнуть на гиперссылке, и она так же откроется в браузере?