Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - VBA

Страница: 1 |

 

  Вопрос: Как запросить у пользователя путь к файлу Добавлено: 24.05.09 21:22  

Автор вопроса:  knacker
Подскажите, пожалуйста, каким образом можно запросить у пользователя путь к файлу, чтобы он мог выбрать его через Проводник (Windows Explorer).

Предполагается, что перед выполнением макроса будет выводиться окно с настройками, среди них в т.ч. должна быть возможность выбрать путь к файлу, из которого программа будет брать данные в дальнейшем. Хотелось бы что-то типа кнопки "Обзор..." (Browse...), а рядом с ней поле для отображения выбранного пути + запись пути в переменную.

Ногами сильно не бейте, в программировании не силен никак =)

Ответить

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

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



ICQ: 298826769 

Вопросов: 53
Ответов: 1732
 Профиль | | #1 Добавлено: 25.05.09 10:00
API-Guide:
  1. Private Declare Function GetOpenFileName Lib "comdlg32.dll" Alias "GetOpenFileNameA" (pOpenfilename As OPENFILENAME) As Long
  2. Private Type OPENFILENAME
  3.     lStructSize As Long
  4.     hwndOwner As Long
  5.     hInstance As Long
  6.     lpstrFilter As String
  7.     lpstrCustomFilter As String
  8.     nMaxCustFilter As Long
  9.     nFilterIndex As Long
  10.     lpstrFile As String
  11.     nMaxFile As Long
  12.     lpstrFileTitle As String
  13.     nMaxFileTitle As Long
  14.     lpstrInitialDir As String
  15.     lpstrTitle As String
  16.     flags As Long
  17.     nFileOffset As Integer
  18.     nFileExtension As Integer
  19.     lpstrDefExt As String
  20.     lCustData As Long
  21.     lpfnHook As Long
  22.     lpTemplateName As String
  23. End Type
  24. Private Sub Form_Load()
  25.     'KPD-Team 1998
  26.     'URL: http://www.allapi.net/
  27.     'E-Mail: KPDTeam@Allapi.net
  28.     Dim OFName As OPENFILENAME
  29.     OFName.lStructSize = Len(OFName)
  30.     'Set the parent window
  31.     OFName.hwndOwner = Me.hWnd
  32.     'Set the application's instance
  33.     OFName.hInstance = App.hInstance
  34.     'Select a filter
  35.     OFName.lpstrFilter = "Text Files (*.txt)" + Chr$(0) + "*.txt" + Chr$(0) + "All Files (*.*)" + Chr$(0) + "*.*" + Chr$(0)
  36.     'create a buffer for the file
  37.     OFName.lpstrFile = Space$(254)
  38.     'set the maximum length of a returned file
  39.     OFName.nMaxFile = 255
  40.     'Create a buffer for the file title
  41.     OFName.lpstrFileTitle = Space$(254)
  42.     'Set the maximum length of a returned file title
  43.     OFName.nMaxFileTitle = 255
  44.     'Set the initial directory
  45.     OFName.lpstrInitialDir = "C:\"
  46.     'Set the title
  47.     OFName.lpstrTitle = "Open File - KPD-Team 1998"
  48.     'No flags
  49.     OFName.flags = 0
  50.  
  51.     'Show the 'Open File'-dialog
  52.     If GetOpenFileName(OFName) Then
  53.         MsgBox "File to Open: " + Trim$(OFName.lpstrFile)
  54.     Else
  55.         MsgBox "Cancel was pressed"
  56.     End If
  57. End Sub

Ответить

Номер ответа: 2
Автор ответа:
 honeybeer



Вопросов: 1
Ответов: 6
 Профиль | | #2 Добавлено: 27.05.09 12:53
мде...
  1. Public Function RequestFileName() As String
  2. Dim fd As FileDialog
  3.     Set fd = Application.FileDialog(msoFileDialogFilePicker)
  4.     fd.Filters.Add "все файлы", "*.*"
  5.     fd.Filters.Add "текстовые файлы", "*.txt"
  6.     fd.FilterIndex = 1
  7.     If fd.Show = 0 Then
  8.         RequestFileName = Empty
  9.     Else
  10.         RequestFileName = fd.SelectedItems(1)
  11.     End If
  12. End Function


так намного проще

Ответить

Номер ответа: 3
Автор ответа:
 Arseny



ICQ: 298826769 

Вопросов: 53
Ответов: 1732
 Профиль | | #3 Добавлено: 27.05.09 13:43
упс... как-то не учел заголовок подфорума и ярко выраженную окраску вба....

Ответить

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



Вопросов: 1
Ответов: 6
 Профиль | | #4 Добавлено: 27.05.09 15:00
=)бывает

Ответить

Страница: 1 |

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



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