2012-03-07 1 views
0

Возможно ли открыть все типы файлов из excel vba только с пути к файлу? Сейчас я могу открыть книги с простым:Открытие файлов с помощью Filepath Excel-VBA

Workbooks.Open myDestFilePath 

но что, если myDestFilePath действительно .pptx файл или что-то еще?

+0

Вы можете использовать ' Shell() ', чтобы открыть любой документ в своем приложении по умолчанию (при условии, что существует существующая ассоциация типов файлов для такого файла). –

+0

http://www.erlandsendata.no/english/index.php?d=envbafoldersfileopen или http: // вир port.microsoft.com/kb/170918 –

ответ

0

Вы можете абсолютно использовать Excel VBA для автоматизации других приложений, но вам нужно использовать правильный объект приложения для задачи. Если вы пытаетесь открыть файлы PowerPoint, вам нужно будет использовать PowerPoint для этого. Вот грубый пример:

'remember to add the powerpoint object library (Tools->References) 
Sub OpenPPTFile() 
    Dim pptApp As PowerPoint.Application 
    Dim pptPres As PowerPoint.Presentation 

    Set pptApp = New PowerPoint.Application 

    Set pptPres = pptApp.Presentations.Open("filename.pptx") 

    'here you can add code to have powerpoint do all kinds of nifty things to your file 

    pptPres.Close 

    pptApp.Quit 

    Set pptPres = Nothing 
    Set pptApp = Nothing 
End Sub 

Так что, если ваш вопрос «Могу ли я использовать Excel, чтобы открыть файлы, созданные другими приложениями», короткий ответ: нет. Однако, если вопрос: «Могу ли я использовать Excel VBA для автоматизации других приложений для выполнения операций с файлами, отличными от Excel?» ответ - да.

+0

Ну, файл pptx уже создан ... Я просто хочу открыть его после ввода пользователем информации ... Затем я нахожу путь к файлу. Когда у меня есть путь к файлу, я хочу открыть документ, находящийся в этом месте. – thebiglebowski11

+0

Я мог бы открыть что-то другое, кроме powerpoint, возможно, слова doc или какого-либо другого документа программного обеспечения САПР – thebiglebowski11

+0

Вообще говоря, вы будете ограничены документами Office, если вы будете делать это из VBA (если только библиотека автоматизации VBA не была предоставленные вам для этого конкретного приложения). Если я могу спросить, что вы будете делать с файлами после их открытия? – hexboy

1

Вы можете использовать функцию ShellExecute VB. Просто объявите заголовок API, и вы можете «вызвать» файл напрямую, чтобы открыть его в связанном приложении. Вот пример кода:

http://www.tomasvasquez.com.br/blog/microsoft-office/usando-a-funcao-shellexecute-no-vba

К сожалению о ссылке, но я пишу этот ответ от моего IPad, и его ужасный форматировать код здесь. :(

2

Чтобы использовать внутренние вызовы, без API я не нашел много, что

ThisWorkbook.FollowHyperlink "FilePath" 

не откроется

. Например:

ThisWorkbook.FollowHyperlink "D:\My documents\Movie.mov" 

 Смежные вопросы

  • Нет связанных вопросов^_^