Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/41: Рейтинг темы: голосов - 41, средняя оценка - 4.88
0 / 0 / 0
Регистрация: 03.08.2010
Сообщений: 37

Диалог для выбора папки в VBA

16.11.2006, 20:18. Показов 8493. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток! Скажите, плз, как вызвать диалог для выбора каталога?
Дело в том, что выбор файла я нашла, а вот с директорией возникла проблема. Поможите кто знает, плз
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
16.11.2006, 20:18
Ответы с готовыми решениями:

Создать диалог выбора папки для VBA (SolidWorks 2013)
Всем доброго дня! Подскажите, пожалуйста, как создать диалог выбора папки для VBA. Работаю в программе SW2013. Есть форма, в которой кнопка...

Показать диалог выбора папки
Здравствуйте! Мне нужно на VBA прописать UzerForm, чтобы пользователь мог выбрать нужную ему директорию с файлами, данные из которых в...

Диалог выбора каталога в VBA
Здравствуйте все! Я здесь человек новый, никого не знаю :) Тем не менее у меня вопрос: подскажите, кто знает, диалог выбора каталога ...

3
0 / 0 / 0
Регистрация: 15.11.2006
Сообщений: 8
16.11.2006, 21:43
Tut mozno vospolzovatsia API funkciei. Nize privedionyj kod nuzno pomestit v pustoi modul.
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
'<<<<<<<<<DEKLARACIJA>>>>>>>>>>>>>>>>
Private Type BrowseInfo
  hWndOwner As Long
  pIDLRoot As Long
  pszDisplayName As Long
  lpszTitle As Long
  ulFlags As Long
  lpfnCallback As Long
  lParam As Long
  iImage As Long
End Type
'
'
' dlia vybora kataloga,
Private Const BIF_RETURNONLYFSDIRS = &H1
' dlia zapuska komandy FIND
Private Const BIF_DONTGOBELOWDOMAIN = &H2
Private Const BIF_STATUSTEXT = &H4
Private Const BIF_RETURNFSANCESTORS = &H8
' prosmotr kompiuterov
Private Const BIF_BROWSEFORCOMPUTER = &H1000
' prosmotr printerov
Private Const BIF_BROWSEFORPRINTER = &H2000
' prosmotr vsego
Private Const BIF_BROWSEINCLUDEFILES = &H4000
'
Private Const MAX_PATH = 260
 
'   Deklaracija API
Private Declare Sub CoTaskMemFree Lib "ole32.dll" _
  (ByVal hMem As Long)
Private Declare Function lstrcat Lib "kernel32" Alias "lstrcatA" _
  (ByVal lpString1 As String, ByVal lpString2 As String) As Long
Private Declare Function SHBrowseForFolder Lib "shell32" _
  (lpbi As BrowseInfo) As Long
Private Declare Function SHGetPathFromIDList Lib "shell32" _
  (ByVal pidList As Long, ByVal lpBuffer As String) As Long
 
'((((((((((((((((((((((((STARTUEM))))))))))))))))))))))))))))))))))
Public Sub Poisk_kataloga()
  Dim MyStr As String
  Dim Hwnd As Long
  
  MyStr = BrowseForFolder(Hwnd, "Zagolovok!")
 
End Sub
 
Public Function BrowseForFolder(hWndOwner As Long, _
  sPrompt As String) As String
  '==================================================
  ' Otkryvaem sistemnoe dialogovoe okno dlia prosmotra katalogov
  '==================================================
  Dim iNull As Integer
  Dim lpIDList As Long
  Dim lResult As Long
  Dim sPath As String
  Dim udtBI As BrowseInfo
  '
  udtBI.lpszTitle = lstrcat(sPrompt, "")
  udtBI.ulFlags = BIF_RETURNONLYFSDIRS
    
  lpIDList = SHBrowseForFolder(udtBI)
  If lpIDList Then
    sPath = String$(MAX_PATH, 0)
    lResult = SHGetPathFromIDList(lpIDList, sPath)
    Call CoTaskMemFree(lpIDList)
    iNull = InStr(sPath, vbNullChar)
    If iNull Then sPath = Left$(sPath, iNull - 1)
  End If
  BrowseForFolder = sPath
End Function
Zdes vozmoznost poiska kataloga kompiutera v seti printera, nado tolko podobrat nuznuju konstantu.
Scas nastroeno na vybor kataloga
0
22 / 5 / 1
Регистрация: 05.09.2010
Сообщений: 370
17.11.2006, 09:11
посмотрите http://www.relib.com/forums/Topic887117-11-1.aspx

там по ссылкам можно найти, как начать обзор с определенной папки...
0
_art_
21.11.2006, 10:27
'подключаемые библиотеки: Microsoft Office Object Library (mso.dll)
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Private Sub btnChooseFolder_Click()
 Dim fd As FileDialog
 Dim vrtSelectedItem As Variant
 
 Set fd = Application.FileDialog(msoFileDialogFolderPicker)
 With fd
    .ButtonName = "Выбрать"
        'Нажата кнопка "Выбрать"
    If .Show = -1 Then
        For Each vrtSelectedItem In .SelectedItems
            'запись пути
            Path = vrtSelectedItem
        Next vrtSelectedItem
    'Нажата кнопка Cancel.
    Else
        Exit Sub
    End If
 End With
 
 Set fd = Nothing
End Sub
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
21.11.2006, 10:27
Помогаю со студенческими работами здесь

Вопрос к знатокам Excel. Как вызвать из VBA диалог выбора директории?
Мне нужно вызвать диалог выбора ДИРЕКТОРИИ (не файла!) для того, чтобы в эту директорию писать файлы. В списке стандартных диалогов Excel я...

Диалог выбора файла Word
Есть код Public Sub test() Dim oDoc As Word.Document Set oDoc = Documents.Open(Path + &quot;\test.docx&quot;) oDoc.SaveAs2...

Диалог выбора файла в Excel
Здравствуйте, градане ! Скорее всего мой вопрос уже неоднократно задавался, но поиском найти ничего не получилось.. Так что прошу не...

Вызвать стандартный диалог выбора директории
как вызвать стандартный диалог выбора директории. очевидно д б api функция

Нужен диалог выбора диска (директории), а не файла
Задача: на форме есть Label1, нужно выбрать директорию на диске, и присвоить этот путь LABEL1 может поможет выводит все диалоги ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru