Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - VBA

Страница: 1 |

 

  Вопрос: Вызов диалога "Выбрать папку" Добавлено: 22.11.03 15:46  

Автор вопроса:  Alexander N | Web-сайт: sasha.samogon.info

Где-то в каком-то проэкте встречался с использованием диалога "Выбрать папку". Как его вызвать? Заранее благодарен.

Ответить

  Ответы Всего ответов: 8  

Номер ответа: 1
Автор ответа:
 dedtolya



Вопросов: 0
Ответов: 39
 Профиль | | #1 Добавлено: 22.11.03 22:25

Application.FileDialog(msoFileDialogFolderPicker).Show

dedtolya

Ответить

Номер ответа: 2
Автор ответа:
 Alexander N



Вопросов: 21
Ответов: 44
 Web-сайт: sasha.samogon.info
 Профиль | | #2
Добавлено: 23.11.03 13:37

Компилятор ругается и на "msoFileDialogFolderPicker" и на Application. :-) Это шутка была?

Ответить

Номер ответа: 3
Автор ответа:
 Alexander N



Вопросов: 21
Ответов: 44
 Web-сайт: sasha.samogon.info
 Профиль | | #3
Добавлено: 23.11.03 13:38

Компилятор ругается и на "msoFileDialogFolderPicker" и на Application. :-) Это шутка была? Или нет?

Ответить

Номер ответа: 4
Автор ответа:
 Creator



Вопросов: 11
Ответов: 10
 Профиль | | #4 Добавлено: 23.11.03 14:39
Private Type BrowseInfo
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-сайт: sasha.samogon.info
 Профиль | | #5
Добавлено: 23.11.03 14:47

Спасибо!!! Жили б в одном городе, пива бы прислал.... :-)

Ответить

Номер ответа: 6
Автор ответа:
 dedtolya



Вопросов: 0
Ответов: 39
 Профиль | | #6 Добавлено: 23.11.03 19:12

Не посылаю не проверенных ответов.

MS OfficeXP VBA

Application.FileDialog(msoFileDialogFolderPicker).Show

Это работает.

Если отвечать, формально, на поставленный вопрос то:

- см. справку, MSDN (там єто прописано)

dedtolya

Ответить

Номер ответа: 7
Автор ответа:
 Павел



Администратор

ICQ: 326066673 

Вопросов: 368
Ответов: 5968
 Web-сайт: www.vbnet.ru
 Профиль | | #7
Добавлено: 24.11.03 11:08
У меня такое подозрение, что Александру надо диалог не в VBA, а в VB
вызвать..

Ответить

Номер ответа: 8
Автор ответа:
 Alexander N



Вопросов: 21
Ответов: 44
 Web-сайт: sasha.samogon.info
 Профиль | | #8
Добавлено: 25.11.03 14:20

Вы абсолютно правы, Павел. :-) Я не имею понятия о различиях. Быть можкет Вы меня просветите?

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам