Страница: 1 |
Где-то в каком-то проэкте встречался с использованием диалога "Выбрать папку". Как его вызвать? Заранее благодарен.
Application.FileDialog(msoFileDialogFolderPicker).Show dedtolya Компилятор ругается и на "msoFileDialogFolderPicker" и на Application. Компилятор ругается и на "msoFileDialogFolderPicker" и на Application. Спасибо!!! Жили б в одном городе, пива бы прислал.... Не посылаю не проверенных ответов. MS OfficeXP VBA Application.FileDialog(msoFileDialogFolderPicker).Show Это работает. Если отвечать, формально, на поставленный вопрос то: - см. справку, MSDN (там єто прописано) dedtolya Вы абсолютно правы, Павел. Страница: 1 |
Вопрос: Вызов диалога "Выбрать папку"
Добавлено: 22.11.03 15:46
Автор вопроса:
Alexander N | Web-сайт:
Ответы
Всего ответов: 8
Номер ответа: 1
Автор ответа: dedtolya
Вопросов: 0
Ответов: 39
Профиль | | #1
Добавлено: 22.11.03 22:25
Номер ответа: 2
Автор ответа: Alexander N
Вопросов: 21
Ответов: 44
Web-сайт:
Профиль | | #2
Добавлено: 23.11.03 13:37
Это шутка была?
Номер ответа: 3
Автор ответа: Alexander N
Вопросов: 21
Ответов: 44
Web-сайт:
Профиль | | #3
Добавлено: 23.11.03 13:38
Это шутка была? Или нет?
Номер ответа: 4
Автор ответа: Creator
Вопросов: 11
Ответов: 10
Профиль | | #4
Добавлено: 23.11.03 14:39
hwndOwner As Long
pIDLRoot As Long
pszDisplayName As Long
lpszTitle As String
ulFlags As Long
lpfnCallback As Long
lParam As Long
iImage As Long
End Type
Dim strPath As String
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
Private Declare Sub CoTaskMemFree Lib "ole32.dll" (ByVal hMem As Long)
'Îáçîð ïàïîê
Public Function BrowseForFolder(hwndOwner As Long, sPrompt As String) As String
Const BIF_RETURNONLYFSDIRS = 1, MAX_PATH = 260
Dim intNull As Integer, lngIdList As Long
Dim udtBI As BrowseInfo
With udtBI
.hwndOwner = hwndOwner
.lpszTitle = sPrompt
.ulFlags = BIF_RETURNONLYFSDIRS
End With
lngIdList = SHBrowseForFolder(udtBI)
If lngIdList Then
strPath = String$(MAX_PATH, 0)
SHGetPathFromIDList lngIdList, strPath
CoTaskMemFree lngIdList
intNull = InStr(strPath, vbNullChar)
If intNull Then strPath = Left$(strPath, intNull - 1)
End If
BrowseForFolder = strPath
End Function
Private Sub Command1_Click()
BrowseForFolder Me.hWnd
End Sub
Номер ответа: 5
Автор ответа: Alexander N
Вопросов: 21
Ответов: 44
Web-сайт:
Профиль | | #5
Добавлено: 23.11.03 14:47
Номер ответа: 6
Автор ответа: dedtolya
Вопросов: 0
Ответов: 39
Профиль | | #6
Добавлено: 23.11.03 19:12
Номер ответа: 7
Автор ответа: Павел
Администратор
ICQ: 326066673
Вопросов: 368
Ответов: 5968
Web-сайт:
Профиль | | #7
Добавлено: 24.11.03 11:08
У меня такое подозрение, что Александру надо диалог не в VBA, а в VB
вызвать..
Номер ответа: 8
Автор ответа: Alexander N
Вопросов: 21
Ответов: 44
Web-сайт:
Профиль | | #8
Добавлено: 25.11.03 14:20
Я не имею понятия о различиях. Быть можкет Вы меня просветите?