Excel VBA - обьект Browse
Модератор: Naeel Maqsudov
Подскажите есть ли в VBA стандартный обьект Browse(не уверен что он именно так называется) с помощью которого можно производить выбор директории или файла.
- Naeel Maqsudov
- Сообщения: 2570
- Зарегистрирован: 20 фев 2004, 19:17
- Откуда: Moscow, Russia
- Контактная информация:
Есть 2 пути
1) использовать функци WinAPI (сложнее для начинающих)
2) использовать ActiveScripting (проще, но требует scrrun.dll, которая, впрочем, является стандартным компонентом Windows)
Для первого - изучайте WinAPI
Для второго:
Подключите с помощью меню Tools/References к VBA проекту "Microsotf Scripting Runtime".
И пишите:
1) использовать функци WinAPI (сложнее для начинающих)
2) использовать ActiveScripting (проще, но требует scrrun.dll, которая, впрочем, является стандартным компонентом Windows)
Для первого - изучайте WinAPI
Для второго:
Подключите с помощью меню Tools/References к VBA проекту "Microsotf Scripting Runtime".
И пишите:
Код: Выделить всё
Dim fs As New Scripting.FileSystemObject, dd As Scripting.Folders, ff As Scripting.Files
Dim d As Scripting.Folder, f As Scripting.File
Set dd = fs.GetFolder("C:\")
Set ff = dd.Files
For each d in dd ------- Это цикл по именам папок
d.SubFolders ------- Это коллекция подпапок в папке d
For each f in ff ------ Это по всем файлам
- Naeel Maqsudov
- Сообщения: 2570
- Зарегистрирован: 20 фев 2004, 19:17
- Откуда: Moscow, Russia
- Контактная информация:
Сечас подумал.....
Возможно имелось в виду диалоговое окошко "Выбор папки"
Тогда так:
Подключите аналогично к проекту библиотеку "Microsoft Shell Controls And Automations"
Данная библиотека умеет работать с ярлыками, менюшками, которые у файлов в проводнике появляются по правой кнопке, с пространством имен Windows (т.е. в отличие от Sripting позволяет ходить и по виртуальным папкам Windows shell), а также с самими окнами проводника.
Возможно имелось в виду диалоговое окошко "Выбор папки"
Тогда так:
Подключите аналогично к проекту библиотеку "Microsoft Shell Controls And Automations"
Код: Выделить всё
Sub qwe()
Dim sh As New Shell32.Shell
Dim f As Shell32.Folder
Set f = sh.BrowseForFolder(0, "qwe", 0)
'f - это папка Ставьте после f точку и в подстрочнике ищите нужные свойства и методы
End Sub
-------------
Лень - двигатель прогресса!
Лень - двигатель прогресса!
смотрите темы...
для выбора папки -
[4] Надстройка Excel получения списка папок и файлов
forum/viewtopic.php?t=4705
для выбора файлов -
Проблема с функцией GetOpenFileName
forum/viewtopic.php?t=4797
для выбора папки -
[4] Надстройка Excel получения списка папок и файлов
forum/viewtopic.php?t=4705
для выбора файлов -
Проблема с функцией GetOpenFileName
forum/viewtopic.php?t=4797