Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Выбор папки - запомнить последний путь / 4 сообщений из 4, страница 1 из 1
08.09.2007, 12:30:53
    #34785939
LeCrunch
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выбор папки - запомнить последний путь
Использую макрос, который запрашивает у пользователя месторасположение определенной папки, предлагая ему вручную указать путь к ней.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
    With Application.FileDialog(msoFileDialogFolderPicker)
        .InitialFileName = "C:\"
        .Title = "Откройте папку с документами"
        .Show
        
    If .SelectedItems.Count =  0  Then
       MsgBox "Папка не выбрана!"
Для удобства дальнейшей работы, учитывая, что требуемые папки располагаются недалеко друг от друга, нужно чтобы это расположение запоминалось, и при повторном запуске макроса диалоговое окно раскрывалось на последнем варианте.

Как это реализовать?
(Если через реестр, то желательно учесть, что макрос будет запускаться из-под "пользователя")
...
Рейтинг: 0 / 0
08.09.2007, 16:58:10
    #34786101
vbapro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выбор папки - запомнить последний путь
Код: plaintext
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.
Sub start()
Const MyAppName = "ChooseFolder"
Const MySection = "ChooseFolder"
Const MyKey = "ChooseFolder"
Dim PreviousFolder As String

    PreviousFolder = GetSetting(AppName:=MyAppName, _
                                Section:=MySection, _
                                Key:=MyKey, _
                                Default:="c:\")
    
    With Application.FileDialog(msoFileDialogFolderPicker)
            .InitialFileName = PreviousFolder & "\"
            .Title = "Откройте папку с документами"
            .AllowMultiSelect = False
            .Show
            
        If .SelectedItems.Count =  0  Then
           MsgBox "Папка не выбрана!"
        Else
            SaveSetting AppName:=MyAppName, _
                        Section:=MySection, _
                        Key:=MyKey, _
                        Setting:=.SelectedItems( 1 )
        End If
    End With
            
End Sub
...
Рейтинг: 0 / 0
08.09.2007, 17:00:14
    #34786103
vbapro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выбор папки - запомнить последний путь
упустил, на счет пользователя, вот так лучше
Код: plaintext
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.
Sub start()
Const MyAppName = "ChooseFolder"
Const MySection = "ChooseFolder"
Dim MyKey As String
Dim PreviousFolder As String


    MyKey = Application.UserName
    
    PreviousFolder = GetSetting(AppName:=MyAppName, _
                                Section:=MySection, _
                                Key:=MyKey, _
                                Default:="c:\")
    
    With Application.FileDialog(msoFileDialogFolderPicker)
            .InitialFileName = PreviousFolder & "\"
            .Title = "Откройте папку с документами"
            .AllowMultiSelect = False
            .Show
            
        If .SelectedItems.Count =  0  Then
           MsgBox "Папка не выбрана!"
        Else
            SaveSetting AppName:=MyAppName, _
                        Section:=MySection, _
                        Key:=MyKey, _
                        Setting:=.SelectedItems( 1 )
        End If
    End With
            
End Sub
...
Рейтинг: 0 / 0
09.09.2007, 17:29:53
    #34786706
LeCrunch
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выбор папки - запомнить последний путь
Спасибо!
Заодно MS-инфу про ветку реестра нашел , где сохраняется информация
...
Рейтинг: 0 / 0
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Выбор папки - запомнить последний путь / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]