powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Выбрать при помощи диалогового окна файл с определенным расширением и записать путь
17 сообщений из 17, страница 1 из 1
Выбрать при помощи диалогового окна файл с определенным расширением и записать путь
    #37647825
DMK67
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Нашел в инете
Код: vbnet
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.
Sub Main()
'Объявление переменной как объекта FileDialog.
Dim fd As FileDialog
'Создание объекта FileDialog как диалогового окна типа File Picker.
    Set fd = Application.FileDialog(msoFileDialogFilePicker)
        'Объявление переменной для хранения пути к каждому выбранному элементу.
        'Несмотря на то что путь представляет собой строковую переменную (String),
         'данная переменная должна являться объектом типа Variant, поскольку процедура
         'цикла For Each...Next работает только с объектами Variant и Object.
    Dim vrtSelectedItem As Variant
    'Использование блока With...End With для создания ссылки на объект FileDialog.
    With fd
        'Использование метода Show для вывода диалогового окна типа File Picker.
        'Пользователь нажал кнопку подтверждения действия.
        If .Show = -1 Then
            'Перебор элементов из коллекции FileDialogSelectedItems.
            For Each vrtSelectedItem In .SelectedItems
                'vrtSelectedItem содержит путь к каждому выбранному элементу.
                'Здесь можно использовать любые нужные функции ввода/вывода по отношению к полученному пути.
                'В данном примере путь просто отображается в окне сообщения.
                MsgBox "Путь: " & vrtSelectedItem
            Next vrtSelectedItem
        'Пользователь нажал кнопку отмены действия.
        Else
        End If
    End With
    'Очистка значения переменной-ссылки.
    Set fd = Nothing
End Sub



Все отлично, но хочется чтобы пользователь не видел в диалоговом окне ничего кроме папок и файлов с каким то определенным расширением... например .jpg и .gif
...
Рейтинг: 0 / 0
Выбрать при помощи диалогового окна файл с определенным расширением и записать путь
    #37647843
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DMK67например .jpg и .gifсм. свойство Filters.

Однако, не проще ли использовать что-то типа:
Код: vbnet
1.
FileName = Application.GetOpenFilename("Файлы *.gif, *.gif")
...
Рейтинг: 0 / 0
Выбрать при помощи диалогового окна файл с определенным расширением и записать путь
    #37647864
DMK67
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
GetOpenFilename - дает только имя, а мне надо путь...
...
Рейтинг: 0 / 0
Выбрать при помощи диалогового окна файл с определенным расширением и записать путь
    #37647866
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DMK67дает только имяможет надо было попробовать, прежде чем голословно утверждать?
...
Рейтинг: 0 / 0
Выбрать при помощи диалогового окна файл с определенным расширением и записать путь
    #37647891
DMK67
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Попробовал, и сам же из пути имя вытащил... извиняюсь...
...
Рейтинг: 0 / 0
Выбрать при помощи диалогового окна файл с определенным расширением и записать путь
    #37647904
DMK67
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Как то так:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
Sub main2()
Dim sFullFileName As Variant
Dim sFileName As Variant
Dim PATH_PIKT As Variant
PATH_PIKT = Application.GetOpenFilename("Файлы *.gif, *.gif", , "Выбрать картинку", , False)
If PATH_PIKT = False Then Exit Sub
sFullFileName = PATH_PIKT
sFileName = Dir(sFullFileName, vbDirectory)
  MsgBox "Путь: " & PATH_PIKT & vbCr & "Имя с расширением : " & sFileName
  
End Sub



а можно сюда несколько типов файлов для отображения вставить?
...
Рейтинг: 0 / 0
Выбрать при помощи диалогового окна файл с определенным расширением и записать путь
    #37647914
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как насчет прочесть справку?
...
Рейтинг: 0 / 0
Выбрать при помощи диалогового окна файл с определенным расширением и записать путь
    #37647995
KL (XL)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DMK67...а можно сюда несколько типов файлов для отображения вставить?

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
Sub main2()
    Dim sFullFileName As Variant
    Dim sFileName As Variant
    Dim PATH_PIKT As Variant
    
    PATH_PIKT = Application.GetOpenFilename( _
        "Графические Файлы (*.gif;*.png;*.jpg;*.tif),*.gif;*.png;*.jpg;*.tif," & _
        "Файлы Excel (*.xls;*.xlsx;*.xlsm),*.xls;*.xlsx;*.xlsm" _
        , , "Выбрать файл", , False)
    If PATH_PIKT = False Then Exit Sub
    sFullFileName = PATH_PIKT
    sFileName = Dir(sFullFileName, vbDirectory)
    MsgBox "Путь: " & PATH_PIKT & vbCr & "Имя с расширением : " & sFileName
  End Sub
...
Рейтинг: 0 / 0
Выбрать при помощи диалогового окна файл с определенным расширением и записать путь
    #37648201
DMK67
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо... а где можно развернутую справку по GetOpenFilename найти&
...
Рейтинг: 0 / 0
Выбрать при помощи диалогового окна файл с определенным расширением и записать путь
    #37648228
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
да функция-то простая, есть что-то неясное в F1?
...
Рейтинг: 0 / 0
Выбрать при помощи диалогового окна файл с определенным расширением и записать путь
    #37648275
DMK67
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Может быть кому-нибудь пригодится:
В связи с тем, что файл Excel я компилирую в EXE при помощи америкосовской программы защиты от копирования - у меня все русские буквы в модулях VBE стираются или превращаются в "кракозяблы" при шифровании содержимого модулей (это допзащита от копирования файла).
Естественно пришел к выводу о необходимости воспользоваться для хранения (необходимых для использования в VBA) русских названий - именованными диапазонами.

Т.е в именованный диапазон записываю фразу: "Выбор графических файлов (*.gif; *.jpg; *.bmp),*.gif;*.jpg;*.bmp"
затем в коде использую один из вариантов:


Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
Sub AAA()
Dim F_PUT_K_FILE_1 As Variant
Dim AAA As Variant
Dim BBB As Variant
AAA = [F_BUTTON_9].Value
BBB = [F_BUTTON_10].Value
'стандартный вариант
'F_PUT_K_FILE1 = Application.GetOpenFilename("Файлы картинки, *.gif; *.jpg; *.bmp", , "Выбрать картинку", , False)
'через переменную
'F_PUT_K_FILE1 = Application.GetOpenFilename(AAA, , BBB, , False)
'вариант с прямым использованием 2-х именных диапазонов 
F_PUT_K_FILE1 = Application.GetOpenFilename([F_BUTTON_9], , [F_BUTTON_10], , False)
End Sub
...
Рейтинг: 0 / 0
Выбрать при помощи диалогового окна файл с определенным расширением и записать путь
    #37648339
DMK67
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Для того чтобы организовать просмотр нескольких комбинаций видов файлов можно использовать несколько именованных диапазонов

Причем надпись. определяющая тип файлов для выбора, в каждом именованном диапазоне, кроме последнего - должна заканчиваться запятой!!!
Кавычки ставить не надо!!!
Итак у нас есть 3 именованных диапазона:F_BUTTON_9 F_BUTTON_10 F_BUTTON_11
В первый вводим первую строку:Выбор следующих типов графических файлов (*.gif; *.jpg; *.bmp),*.gif;*.jpg;*.bmp,
Во второй вторую строку:Выбор из всех типов файлов (*.*),*.*
В третий Заголовок окна:Выбери картинку для слайд-шоу

в модуль:

Код: vbnet
1.
F_PUT_K_FILE1 = Application.GetOpenFilename([F_BUTTON_9] & [F_BUTTON_10], , [F_BUTTON_11], , False)



Ну вот вроде и все... всем помогавшим - большое спасибо
...
Рейтинг: 0 / 0
Выбрать при помощи диалогового окна файл с определенным расширением и записать путь
    #37648437
DMK67
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Провел натурный эксперимент - более 4 строчек с типами выбираемых файлов ставить не получается...
...
Рейтинг: 0 / 0
Выбрать при помощи диалогового окна файл с определенным расширением и записать путь
    #37649565
KL (XL)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DMK67Провел натурный эксперимент - более 4 строчек с типами выбираемых файлов ставить не получается...

Дело не в количестве строк а в совокупной длинне текстовой строки используемой в параметре FileFilter (не более 255 символов). Так что если экономить на ненужных словах типа "выбор" и т.п., то можно сделать больше строк:

Код: vbnet
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.
Sub main2()
    Dim sFullFileName As Variant
    Dim sFileName As Variant
    Dim PATH_PIKT As Variant
    Dim strFileTypes1 As String
    Dim strFileTypes2 As String
    Dim strFileTypes3 As String
    Dim strFileTypes4 As String
    Dim strFileTypes5 As String
    Dim strFileTypes6 As String
    Dim strFilter As String
    
    strFileTypes1 = "Графические файлы 1 (*.gif; *.jpg; *.bmp),*.gif;*.jpg;*.bmp"
    strFileTypes2 = "Графические файлы 2 (*.png; *.tif; *.cdr),*.png; *.tif; *.cdr"
    strFileTypes3 = "Книги Excel (*.xls),*.xls"
    strFileTypes3 = "Документы Word (*.doc),*.doc"
    strFileTypes4 = "Все графические Файлы (*.gif;*.png;*.jpg;*.tif),*.gif;*.png;*.jpg;*.tif"
    strFileTypes5 = "Все типы файлов (*.*),*.*"
    
    strFilter = strFileTypes1 & "," & _
        strFileTypes2 & "," & _
        strFileTypes3 & "," & _
        strFileTypes4 & "," & _
        strFileTypes5
    
    MsgBox Len(strFilter)
    
    PATH_PIKT = Application.GetOpenFilename(strFilter, , "Выбрать файл", , False)
    If PATH_PIKT = False Then Exit Sub
    sFullFileName = PATH_PIKT
    sFileName = Dir(sFullFileName, vbDirectory)
    MsgBox "Путь: " & PATH_PIKT & vbCr & "Имя с расширением : " & sFileName
  End Sub
...
Рейтинг: 0 / 0
Выбрать при помощи диалогового окна файл с определенным расширением и записать путь
    #37649719
Фотография Serge 007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KL (XL)...
strFileTypes3 = "Книги Excel (*.xls),*.xls"
strFileTypes3 = "Документы Word (*.doc),*.doc"
...
Вот тут ошибочка. Из-за неё файлы xls не выбирались.

ЗЫ А что за сообщение " 248 " появляется до появления диалогового окна?
...
Рейтинг: 0 / 0
Выбрать при помощи диалогового окна файл с определенным расширением и записать путь
    #37650239
DMK67
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Это выводится длина строки (количество символов)

Код: vbnet
1.
MsgBox Len(strFilter)
...
Рейтинг: 0 / 0
Выбрать при помощи диалогового окна файл с определенным расширением и записать путь
    #37650245
Фотография Serge 007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DMK67Это выводится длина строки (количество символов)

Код: vbnet
1.
MsgBox Len(strFilter)

спс
...
Рейтинг: 0 / 0
17 сообщений из 17, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Выбрать при помощи диалогового окна файл с определенным расширением и записать путь
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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