Как сделать список файлов в папке в excel
Для получения списка файлов в указанной папке используется свойство Files объекта Folder . Объект Folder в VBA Excel возвращается методом GetFolder объекта FileSystemObject по полному имени папки в качестве аргумента.
Если в указанной папке нет файлов, применение свойства Folder.Files приведет к возникновению ошибки. Для корректного завершения программы используйте обработчик ошибок или условие, проверяющее наличие файлов в папке.
Получение списка файлов в папке
Пример 1
Код VBA Excel для получения списка файлов в указанной папке и записи полных имен файлов в массив (с поздней привязкой объектов к переменным):
Вопрос от пользователя
Здравствуйте.
Помогите с одним вопросом. У меня есть несколько внешних дисков и на них записаны фильмы. Я хочу получить список всех названий (имен) этих файлов в тексте, чтобы его распечатать и положить рядом в коробочку с диском (скажем, навести порядок!).
Это серьезно бы облегчило поиск и подключение нужного диска.
Эту задачу можно решить несколькими способами (несмотря на то, что я ниже приведу универсальные варианты — в зависимости от вашей версии Windows, часть из них может не сработать. ). Так что проверяйте сразу несколько из них. 👌
Способы получить список имен файлов
Вариант 1 (с помощью Total Commander)
Наиболее простой и предпочтительный вариант (к тому же точно работающий во всех версиях ОС) — воспользоваться помощью 👉 Total Commander (ссылка на офиц. сайт). Если кто не знает — это спец. программа для работы с файлами (альтернатива проводнику).
Запустив Total Commander, перейдите в нужный каталог (в тот, где у вас хранятся фильмы, например) и выделите все файлы (для этого достаточно нажать Ctrl+A).
Выделяем все файлы в нужном каталоге
Далее в меню "Выделение" выберите опцию "Сохранить выделение в файл. " (в некоторых версиях программы есть возможность скопировать имена файлов в буфер — если сделаете так, то потом откройте документ Word и вставьте список, нажав Ctrl+V ).
Сохранить выделение в файл (Total Commander)
Собственно, полученный текстовый файл можно открыть в любом блокноте (я использую Notepad++), ну и после распечатать список (Ctrl+P) . 👌
Текстовый файл можно открывать - список готов!
Вариант 2 (через браузер)
Для этого нам понадобиться запустить какой-нибудь современный 👉 браузер (я проверял на Chrome и Firefox).
После откройте проводник и перейдите в папку с нужными вам файлами — нужно будет скопировать путь до нее, нажать сочетание Ctrl+C (адрес, вида: "C:\Users\alex\Videos\Фильмы" )
После, вставить этот скопированный "путь" в адресную строку браузера и нажать Enter. В результате вы увидите, что обозреватель покажет вам список всех файлов и дату последнего изменения.
Теперь достаточно выделить всё нужное на странице и скопировать это (👇).
Открываем путь в Chrome
Затем скопированный список лучше всего вставить (сочетание Ctrl+V) в Excel (или 👉 его аналоги). Это удобнее тем, что в Excel вы легко сможете удалить ненужные вам столбики (с датой, например) .
Вставляем список в Excel для дальнейшей работы.
Вариант 3 (список со вложенными файлами и папками)
Этот способ универсальный, и к тому же позволяет получить не только список файлов из текущего каталога, но и из всех вложенных.
Например, есть у вас в каталоге "Видео" отдельная папка "Кино 90-х" , в которой 2 десятка др. фильмов — вышеперечисленные способы бы не позволили узнать их название (из полученного списка), а этот позволит!
Для работы нам понадобиться 👉 командная строка (ничего сложного там не будет!) .
В ней нужно последовательно ввести две команды, после каждой нажать Enter:
- cd C:\Users\alex\Videos\Фильмы (вместо "C:\Users\alex\Videos\Фильмы" укажите свой каталог) ;
- dir /b /s | sort > List.txt (эта команда создаст файл "List.txt" в выбранной вами папке со всеми файлами и каталогами, что в нем есть! Кроме этого, она отсортирует список от А к Я).
CMD - открываем каталог, получаем список
Как убрать путь (C:\Video\) из списка
Кстати, если в списке файлов вам среди названия фильмов (файлов) не нужен их путь — то его легко убрать. Для этого в Notepad++ достаточно:
- нажать на Ctrl+F ;
- в окне "Замена" в строку "найти" указать путь (который повторяется в каждой строке);
- в строке "Заменить на" проверить, чтобы была пустота;
- и нажать кнопку "заменить все" . В результате: в вашем списке будут только имена (без пути)!
Убираем путь до каталога в блокноте
Вариант 4 (без доп. софта)
Этот способ работает не во всех версиях ОС Windows (в 10-ке все OK). Зато он быстрый и не требует вообще никакого доп. софта.
- зайти в нужный каталог;
- выделить файлы (Ctrl+A);
- зажать клавишу Shift (левую);
- нажать ПКМ (правую кнопку мыши), не отпуская Shift;
- из появившегося меню проводника выбрать опцию "Копировать как путь" . Теперь в буфере обмена есть все имена файлов из каталога!
Выделяем и копируем путь
Теперь можно открыть блокнот или тот же Word и вставить список (Ctrl+V).
Вставляем скопированный список
Если вам мешает в каждой строке путь ("C:\Users\") - то как его убрать см. чуть выше.
Excel
В этом посте мы увидим, как получить список файлов в папке в Excel. Мы покажем вам, как использовать Excel для просмотра сведений о файлах и папках в Windows, импортировав все данные о файлах и папках в Microsoft Excel, чтобы отслеживать размер файла, тип файла и дату последнего изменения.
Но что, если некоторые файлы и папки были удалены из этого каталога? Мы не сможем отслеживать, что именно было удалено. Но вы можете использовать Excel для просмотра файлов и сведений о папках в каталоге, что было бы полезно для вас знать хотя бы список файлов и папок, которые были удалены.
Импортируйте и получите список имен файлов в лист Excel
Если вы используете Microsoft Excel для импорта всех сведений о файлах и папках в Excel, это поможет вам регулярно отслеживать дату и время последнего изменения, типы файлов, список файлов, размер файлов и многое другое. Для этого выполните следующие простые шаги.
Теперь откройте любой веб-браузер по вашему выбору и вставьте скопированный путь (путь к папке, которую вы только что скопировали на предыдущем шаге) в адресную строку браузера. Я использовал Google Chrome здесь. Просто добавьте к URL-адресу префикс file:///, и его содержимое будет отображаться на веб-странице.
Он показывает желтые прямоугольники со стрелками и позволяет выбрать нужный кадр. Вы можете найти здесь, что я выбрал ту часть, которую хочу.
Выполнив эти шаги, теперь нажмите кнопку импорт , и вы увидите, что все данные о файлах и папках импортируются на ваш лист Excel в кратчайшие сроки. Вы можете видеть, что данные показаны в столбцах и дают нам четкое представление о каждой детали.
Заключение
Поскольку мы большую часть времени занимаемся организацией файлов и папок, рекомендуется импортировать детали файлов и папок в Excel. Это было бы полезно, если бы любой из ваших файлов или папок должен был быть удален. Данные в листе Excel не обновляются, поэтому нам необходимо регулярно импортировать данные. Вы можете использовать этот метод, когда нужно отслеживать не только изменения файла, но и имена файлов.
В Excel существуют неочевидная возможность вывести на лист список имен файлов из заданной папки. [1] Способ связан с использованием макрофункции (подробнее см. Функция Получить.Ячейку). Этот метод существенно проще написания макроса VBA. Начните с создания именованной формулы. Пройдите по меню Формулы –> Определенные имена –> Присвоить имя, и в окне Создание имени введите данные, как указано на рисунке:
Рис. 1. Диалоговое окно создания именованной формулы
Обратите внимание: функция =ФАЙЛЫ(Лист1!$A$1) не относится к стандартным функциям рабочего листа. Это макрофункция, написанная в старом XLM-стиле и предназначенная для использования на специальном листе макросов. Она принимает один аргумент – путь к каталогу и описание файла (или файловый шаблон) и возвращает массив имен файлов, содержащихся в данном каталоге и удовлетворяющих описанию файла (шаблону). Обычные формулы рабочего листа не могут использовать подобные XLM- функции, а определенные имена — могут.
Определив именованную формулу, введите в ячейку А1 путь к каталогу и описание файла. Например, D:\Dropbox\!Сайт\7_Библиотека\*.*
Следующая формула отобразит первый найденный файл: =ИНДЕКС(Список;1). Если изменить второй аргумент на 2, то будет отображен второй найденный файл и т.д. Следующая формула, введенная в ячейку В1 (рис. 2), и скопированная вдоль столбца, позволит вывести все файлы: =ИНДЕКС(Список;СТРОКА()).
Рис. 2. Использование xlm-макрофункции в именованной формуле позволяет создать на листе список имен файлов
Книгу Excel нужно сохранить как файл с поддержкой макросов (в формате *.xlsm).
[1] По материалам книги Джон Уокенбах. Excel 2013. Трюки и советы. – СПб.: Питер, 2014. – С. 44, 45
Читайте также: