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. Евгений

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

Добавить комментарий

Ваш комментарий будет опубликован после прохождения обязательной модерации. Исходящие ссылки не допускаются. Время модерации составит от нескольких минут до нескольких часов в зависимости от времени суток и занятости модератора.