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

Выгрузка списка макросов (или всего кода целиком) из проекта VBA в текстовый файл

Sub print_all_sub_and_function_names_of_current_project()
' пишет названия функций программы в файл c:\output.txt

Sub print_all_code_of_current_project()
' пишет весь код данной программы в файл c:\code.vb

Загрузка информации из файлов Word (перебор страниц в документе)

Результат обработки файла Word - вывод данных по каждой странице

Функция предназначена для вывода информации (статистики) по всем листам документа Word.

 

В качестве параметра, функция получает ссылку на открытый документ Word.

Результат работы функции представлен на скриншоте.

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

Шестнадцатеричный редактор в Excel

Вашему вниманию предлагается шестнадцатеричный редактор HexEdit.

Для чего нужен шестнадцатеричный редактор?
Для просмотра и корректировки любой информации, содержащейся в файлах.

Кому это может быть нужно и при каких обстоятельствах?
Например, тому, кто хочет заглянуть внутрь файла (любой структуры) и что-либо найти (и поправить). НехEdit будет особенно полезен в тех случаях, когда политика безопасности не разрешает использовать exe-файлы, но разрешает использовать Excel.

Вывод отсортированного списка файлов

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

Sub ВыводОтсортированногоСпискаФайлов()
    On Error Resume Next
    Dim СписокФайлов As FileDialogSelectedItems
    СтартоваяПапка = CreateObject("WScript.Shell").SpecialFolders("Desktop")
    ' выводим окно выбора
    Set СписокФайлов = GetFilenamesCollection("Выберите файлы на рабочем столе", СтартоваяПапка)
 
    If СписокФайлов Is Nothing Then Exit Sub  ' выход, если пользователь отказался от выбора файлов
    ReDim arr(0 To СписокФайлов.Count - 1, 0 To 1)
    For Each File In СписокФайлов ' заполняем двумерный массив
        arr(i, 1) = File: arr(i, 0) = Fix(CDbl(FileDateTime(File))): i = i + 1
    Next
 
    CoolSort arr ' сортируем двумерный массив

    For i = LBound(arr) To UBound(arr)    ' выводим файлы в порядке даты создания
        Debug.Print "Дата: " & CDate(arr(i, 0)) & " - файл " & arr(i, 1)
    Next i
End Sub

Пример результата (из окна Immediate):

Дата: 27.10.2009 - файл C:\Documents and Settings\Admin\Рабочий стол\Apache LOGs parser.xls
Дата: 11.06.2010 - файл C:\Documents and Settings\Admin\Рабочий стол\123Книга1.xls
Дата: 24.09.2010 - файл C:\Documents and Settings\Admin\Рабочий стол\2010-09-24.xls
Дата: 12.11.2010 - файл C:\Documents and Settings\Admin\Рабочий стол\111.info
Дата: 28.12.2010 - файл C:\Documents and Settings\Admin\Рабочий стол\Armstrong.xls
Дата: 02.01.2011 - файл C:\Documents and Settings\Admin\Рабочий стол\buch.xls

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

Макрос для создания списка случайных адресов email

Макрос выводит на активный лист (в первый столбец) случайные email

Я использовал этот макрос для тестирования программы рассылки писем.

Sub GenerateEmails()
    On Error Resume Next: Err.Clear
    Dim ra As Range: Set ra = Range([A2], Range("A" & Rows.Count).End(IIf(Len(Range("A" & Rows.Count)), xlDown, xlUp)))
    Dim cell As Range
    txt = "abcdefghijklmnopqrstuvwxyz_1234567890"
    For Each cell In ra.Cells
        n = n + 1: dom$ = Choose(n Mod 3 + 1, "@mail.ru", "@yandex.ru", "@gmail.com")
        Randomize: Nam$ = ""
        For i = 1 To Rnd(n) * 5 + 4
            Nam$ = Nam$ & Mid(txt, Fix(Rnd(i) * Len(txt) + 1), 1)
        Next
        cell = Nam$ & dom$
    Next cell
End Sub