СРОЧНО! Файловый диалог

Программирование на Visual Basic for Applications
БлондинистаяРомашка
Начинающий
Начинающий
 
Сообщения: 6
Зарегистрирован: 09.07.2008 (Ср) 13:06

СРОЧНО! Файловый диалог

Сообщение БлондинистаяРомашка » 09.07.2008 (Ср) 13:11

Товарищи, я поинмаю, что надо читать мануал и всё такое, но у меня действительно нет времени. помогите с тупыми вопросами пожалуйста. Синаксис воообще не помню.

Как сделать чтобы при нажатии на кнопку открывался файловый диалог и вбранный файл поместить в textbox?

Денис
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2734
Зарегистрирован: 07.11.2006 (Вт) 13:55
Откуда: Ейск, Краснодарский край

Сообщение Денис » 09.07.2008 (Ср) 13:21

БлондинистаяРомашка
Подключи к проекту Microsoft Common Dialog Control (это сторонняя библиотека, но на данном этапе подойдет).
Вызывая его метод ShowOpen получаешь строку, содержащую имя файла. Ну а потом обычными Open - Close

Пример.
Код: Выделить всё
  Dim FileName As String
  Dim FileNumber As Long
  Dim FileText As String
 
  CommonDialog1.ShowOpen
  FileName = CommonDialog1.FileName
 
  FileNumber = FreeFile
  Open FileName For Input As FileNumber
 
  Do While Not EOF(1)
    Input #FileNumber, FileText
    Text1.Text = Text1.Text & vbCrLf & FileText
  Loop
 
  Close FileNumber
Последний раз редактировалось Денис 09.07.2008 (Ср) 13:56, всего редактировалось 1 раз.
Программирование — богоизбранная дисциплина! Если бог и есть, то вселенную он скомпилировал, не иначе.

БлондинистаяРомашка
Начинающий
Начинающий
 
Сообщения: 6
Зарегистрирован: 09.07.2008 (Ср) 13:06

Сообщение БлондинистаяРомашка » 09.07.2008 (Ср) 13:26

привязала на кнопку процедурку

Dim fd As FileDialog
Dim vrtSelectedItem As Variant

Set fd = Application.FileDialog(msoFileDialogFilePicker)

Selection.Collapse wdCollapseStart
With fd
If .Show = -1 Then
For Each vrtSelectedItem In .SelectedItems
TextBox4.Text = vrtSelectedItem

Next vrtSelectedItem
Else
End If
End With
Set fd = Nothing

что еще надо подключить? пожалуйсто, напишите тупо даже куда ткнуть чтобы подлючить :shock:

Денис
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2734
Зарегистрирован: 07.11.2006 (Вт) 13:55
Откуда: Ейск, Краснодарский край

Сообщение Денис » 09.07.2008 (Ср) 14:15

С этим Application.FileDialog(msoFileDialogFilePicker) я не работал, надо глянуть... Ну, вот, в принципе, добавь форму, брось на нее TextBox и назови его Text1, сделай ему Multiselect = True, добавь в форму следующий код:
Код: Выделить всё
Private Sub UserForm_Click()

    Dim dlgOpen As FileDialog
    Dim dlgFileName As String
    Dim FileName As String
    Dim FileNumber As Long
    Dim FileText As String
 
    Set dlgOpen = Application.FileDialog(msoFileDialogOpen)
    With dlgOpen
        .AllowMultiSelect = False
        .Show
        dlgFileName = .SelectedItems(1)
    End With
   
    FileNumber = FreeFile
    Open dlgFileName For Input As FileNumber
 
    Do While Not EOF(1)
      Input #FileNumber, FileText
      Text1.Text = Text1.Text & vbCrLf & FileText
    Loop
 
    Close FileNumber
   
End Sub


срабатывает при нажатии мышкой по форме. Вот. Изучай. Переделай, как те надо.
Программирование — богоизбранная дисциплина! Если бог и есть, то вселенную он скомпилировал, не иначе.

KL
Microsoft MVP
 
Сообщения: 483
Зарегистрирован: 30.10.2005 (Вс) 0:31
Откуда: Madrid

Сообщение KL » 09.07.2008 (Ср) 14:32

Ничего подключать не надо

Код: Выделить всё
Sub Test1()
    With Application.FileDialog(msoFileDialogFilePicker)
        If .Show = False Then Exit Sub Else UserForm1.TextBox1 = .SelectedItems(1)
    End With
End Sub
Привет,
KL

Денис
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2734
Зарегистрирован: 07.11.2006 (Вт) 13:55
Откуда: Ейск, Краснодарский край

Сообщение Денис » 09.07.2008 (Ср) 14:36

KL
Дададад! Ничего подключать не надо. Я просто сам узнал только что про Application.FileDialog
Последний раз редактировалось Денис 09.07.2008 (Ср) 14:37, всего редактировалось 1 раз.
Программирование — богоизбранная дисциплина! Если бог и есть, то вселенную он скомпилировал, не иначе.

KL
Microsoft MVP
 
Сообщения: 483
Зарегистрирован: 30.10.2005 (Вс) 0:31
Откуда: Madrid

Сообщение KL » 09.07.2008 (Ср) 14:37

Если работаешь в Эксель, то есть еще Application.GetOpenFileName
Привет,
KL

БлондинистаяРомашка
Начинающий
Начинающий
 
Сообщения: 6
Зарегистрирован: 09.07.2008 (Ср) 13:06

Сообщение БлондинистаяРомашка » 09.07.2008 (Ср) 14:40

Спасибо :)


Вернуться в VBA

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 28

    TopList