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

Закрыть все открытые книги Excel

Эти макросы помогут вам закрыть все открытые файлы Excel, оставив лишь текущий файл.

Выбирайте любой из них - они мало чем отличаются.

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

Sub CloseAllWorkbooks1()
    ' закрываем все книги, кроме текущей (активной)
    Dim wb As Workbook: Application.ScreenUpdating = False
    For Each wb In Workbooks    ' перебираем все открытые книги
        If Not wb Is ActiveWorkbook Then    ' если это не этот файл
            If wb.Windows(1).Visible Then wb.Close    ' закрываем его
        End If
    Next wb
End Sub

Второй макрос оставляет открытой только ту книгу, из которой запущен этот самый макрос, независимо от того, какая книга активна на момент запуска:

Автоматическое переключение раскладки клавиатуры для разных диапазонов ячеек

Данный макрос автоматизирует процесс переключения раскладки клавиатуры (смену языков ввода) при работе с таблицами в Excel.

К примеру, вы заносите данные в таблицу, где в некоторые столбцы требуется вводить русские слова (фамилия, имя, и т.п.), а в другие столбцы - английские (марка и модель авто, и т.д.)

Чтобы каждый раз не переключать раскладку вручную - можно воспользоваться WinAPI функцией ActivateKeyboardLayout

Вставьте этот код в модуль листа:

Функция выбора папки с файлами, с сохранением предыдущего значения

Функция GetFolder вызывает диалоговое окно выбора папки в макросах на VBA.

Эту функцию я использую во многих проектах, где необходимо давать пользователю возможность выбора папки.

Чтобы не тревожить пользователя диалоговым окном выбора папки при каждом запуске макроса,
описываемая в статье функция GetFolder сохраняет в реестре путь к ранее выбранной папке,
и при повторном обращении выводит сохранённый путь.

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

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

Sub ПримерИспользования_GetFolder()
    folder$ = GetFolder()    ' запрашиваем имя папки
    If folder$ = "" Then Exit Sub    ' выход, если пользователь отказался от выбора папки

    MsgBox "Выбрана папка: " & folder$, vbInformation
End Sub

Выбор другой открытой книги для получения данных

Часто бывает, что надо получить данные из другой, открытой вместе с используемой, книги Excel.

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

 

Надстройка для транслитерации (кодирования) диапазона ячеек

Результат транслитерации выделенного диапазона ячеек

Надстройка для транслитерации или кодирования (замены символов их кодами) выделенного диапазона ячеек Excel

При запуске надстройки в Excel формируется панель инструментов, при помощи которой можно выполнять следующие действия:

  • Нажатием кнопки RU->EN выполнить транслитерацию выделенного диапазона ячеек
  • Нажатием кнопки EN->RU выполнить транслитерацию выделенного диапазона ячеек
  • В выпадающем списке «Режим работы» можно переключить режим замены символов - второй пункт выпадающего списка «Коды символов» вместо транслита включает режим замены символов их кодами AscW (и обратный режим замены кодо исходным текстом, используя вызов функции ChrW)
  • Нажатием последних двух кнопок (галочка и крестик) можно управлять видимостью листа надстройки, на котором расположена таблица соответствия символов кириллицы и латиницы