Перейти к содержимому
Наше приложение «Дешевые авиабилеты» в AppGallery >>

VBA Excel. Открыть папку (каталог) в проводнике

    Открыть папку (каталог) в проводнике Windows для просмотра из кода VBA Excel с помощью функции Shell и ключевых слов explorer и cmd. Передача фокуса открытой папке.

    Открытие папки в проводнике

    Открытие папки (каталога) в проводнике Windows для просмотра с помощью функции Shell и ключевого слова explorer:

    vbNormalFocus означает, что окно Windows Explorer получает фокус и восстанавливает свое исходное положение и размер.

    Преимущество способа: имя папки может содержать пробелы.

    Недостаток способа: если открываемая папка уже открыта, открывается второй экземпляр, затем третий и т.д.

    То же преимущество и тот же недостаток у следующего способа:

    Открытие или передача фокуса

    Открытие папки (каталога) в проводнике Windows для просмотра или передача папке фокуса, если она уже открыта, с помощью функции Shell и ключевого слова cmd:

    При реализации этого способа происходит кратковременное отображение на экране окна командной строки (cmd.exe). Если убрать параметр vbNormalFocus, окно командной строки мелькать не будет, но и окно проводника, при повторном его вызове, не получит фокус.

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

    Недостаток способа: имя папки не должно содержать пробелы.

    От недостатка этого способа можно избавиться с помощью экранирующих кавычек:

    Для себя на заметку, какие кавычки что экранируют:

    Смотрите как открывать из кода VBA Excel файлы других приложений и интернет-сайты.


    Содержание рубрики VBA Excel по тематическим разделам со ссылками на все статьи.

    2 комментария для “VBA Excel. Открыть папку (каталог) в проводнике”

    1. Если папка

      еще не была открыта на ПК, то при выполнении команды

      действительно открывается эта папка, развернутая на весь экран (как это принято в системе) и ей передаётся фокус (т.е. эта папка становится тем, что показывается на экране).

      Казалось бы — вот оно — счастье. Но если переключиться на лист Эксель (или редактор VBA) и запустить этот же макрос еще раз, папка подсветится на панели задач, а на экране будет по-прежнему лист Эксель (или редактор VBA).

      В чем прОкол?

      1. Евгений

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

    Обсуждение закрыто.