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

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

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

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

Макрос отправки файла на файлообменник zalil.ru

Иногда требуется выложить некоторый файл в общий доступ, и поделиться ссылкой на него.

Для автоматизации этой задачи и предназначена функция UploadFile

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

Фунцкия Get_All_IP_Addresses возвращает коллекцию, содержащую все IP-адреса всех сетевых интерфейсов.

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

Sub ВыводРезультатов_Get_All_IP_Addresses()
    For Each IPaddr In Get_All_IP_Addresses
        txt = txt & IPaddr & vbNewLine
    Next
    MsgBox txt, vbInformation, "Список всех IP адресов"
End Sub

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

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

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

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

Использование классов для элементов управления на форме

Скриншот формы VBA с программно созданными элементами управления

В прикреплённом файле - пример макроса для автоматического создания на форме элементов управления.

Благодаря использованию модуля класса, всем создаваемым элементам управления (в данном случае это CheckBox-ы) назначается один и тот же обработчик событий.

Для проверки запустите форму нажатием кнопки на листе Excel, и пощелкайте на чекбоксах на разных вкладках формы.

Код модуля класса:

Public WithEvents CheckBox As MSForms.CheckBox
 
Public MPname As String
Public MPindex As Integer
Public Index As Integer
 
Sub CheckBox_Change()
    msg = "Изменено состояние чекбокса номер  " & Me.Index & vbNewLine & vbNewLine
    msg = msg & "на вкладке  " & Me.MPname & "   (индекс вкладки = " & Me.MPindex & ")" _
          & vbNewLine & vbNewLine & vbNewLine
    msg = msg & "Новое состояние:  " & Me.CheckBox.Value
    MsgBox msg, vbInformation, "Вы изменили состояние чекбокса!"
End Sub