Форум пользователей Visio

Форум по вопросам применения и программирования в Visio
Текущее время: 29 мар 2024, 11:42

Часовой пояс: UTC + 3 часа [ Летнее время ]


Правила форума


При размещении файлов предпочтительным является формат vsd (а не vsdx/vsdm)
Размещая ваши вложения на форуме не используйте имена файлов содержащих кириллицу, в противном случае файл будет иметь имя .<расширение файла> !

Для форматирования ваших сообщений используйте BBCodes, описание используемых на форуме BBCodes.



Начать новую тему Ответить на тему  [ Сообщений: 4 ] 
Автор Сообщение
 Заголовок сообщения: Макрос открытия файла
СообщениеДобавлено: 25 авг 2016, 09:48 
Не в сети
Постоянный участник

Зарегистрирован: 24 авг 2016, 22:21
Сообщений: 72
Использую Visio c: 2013
Очков репутации: 0

Добавить очки репутацииУменьшить очки репутации
Добрый день, уважаемые форумчане.
Задача у меня следующая: создать макрос, открывающий диалоговое окно выбора файла excel, и сохраняющий в массив значение некоторых ячеек открытой книги excel.
Трудность с диалоговым окном. На форуме нашел несколько тем, в которых открывается существующий файл excel, но в коде жестко прописан путь и название файла. В моем же случае файл может быть где угодно и называться как угодно.
Подскажите, пожалуйста, в каком направлении искать.


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Макрос открытия файла
СообщениеДобавлено: 25 авг 2016, 10:29 
Не в сети
Administrator

Зарегистрирован: 30 авг 2009, 11:02
Сообщений: 2253
Очков репутации: 100626

Добавить очки репутацииУменьшить очки репутации
Пока MSComDlg содержалась в Windows по умолчанию, было примерно так, как в GetSourceName
Но теперь она перестала поставляться. Значит или добавлять dll самому, или искать другой путь. Например Inputbox или свою форму. Или вызывать диалог непосредственно через WinAPI без ActiveX.
Код:
'Function - "Select the source file and create DataRecordSets"
Public Sub ConnectToExternalData()
    On Error Resume Next
        fSource = GetSourceName     '==> Get file name
    If Err.Number > 0 Then
        fSource = SetExcelPath      'Used if MSComDlg is missing
    End If
    On Error GoTo 0
    If fSource = "" Then Exit Sub
    SetNewDRS fSource           '==> Create DRS
End Sub

Private Function GetSourceName() As String
    Dim CDLG As Object
    Set CDLG = CreateObject("MSComDlg.CommonDialog")
    With CDLG
        .DialogTitle = "Get source file"
        .Filter = "Excel files (*.xlsx)|*.xlsx"
        .FileName = Mid(ActiveDocument.Path, 1, Len(ActiveDocument.Path) - 1)
        .ShowOpen
        s = .FileName
    End With
    res = Dir(s)    'If file exists
    If res = "" Then
        MsgBox "File " & s & " is missing"
        GetSourceName = ""
    Else
        GetSourceName = s
    End If
    Set CDLG = Nothing
End Function


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Макрос открытия файла
СообщениеДобавлено: 25 авг 2016, 11:22 
Не в сети
Ветеран

Зарегистрирован: 21 окт 2011, 12:01
Сообщений: 939
Откуда: г. Екатеринбург
Использую Visio c: 2011
Очков репутации: 127

Добавить очки репутацииУменьшить очки репутации
здесь выкладывал пример с диалогом открытия
http://visio.getbb.ru/viewtopic.php?p=2295#p2295
и там ниже в теме ссылки есть


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Макрос открытия файла
СообщениеДобавлено: 26 авг 2016, 12:06 
Не в сети
Постоянный участник

Зарегистрирован: 24 авг 2016, 22:21
Сообщений: 72
Использую Visio c: 2013
Очков репутации: 0

Добавить очки репутацииУменьшить очки репутации
Спасибо!


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 4 ] 

Часовой пояс: UTC + 3 часа [ Летнее время ]



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

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


Вы можете начинать темы
Вы можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Вы можете создать форум бесплатно PHPBB3 на Getbb.Ru, Также возможно сделать готовый форум PHPBB2 на Mybb2.ru
Русская поддержка phpBB