Можно ли открыть все типы файлов из excel vba, указав только путь к файлу? Прямо сейчас я могу открывать книги с помощью простого:
Workbooks.Open myDestFilePath
но что, если myDestFilePath действительно является файлом .pptx или чем-то еще?
Можно ли открыть все типы файлов из excel vba, указав только путь к файлу? Прямо сейчас я могу открывать книги с помощью простого:
Workbooks.Open myDestFilePath
но что, если myDestFilePath действительно является файлом .pptx или чем-то еще?
Вы можете использовать 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?» ответ да.
Использовать внутренние вызовы без API. я не нашла много такого
ThisWorkbook.FollowHyperlink "FilePath"
Не открывается
Например:
ThisWorkbook.FollowHyperlink "D:\My documents\Movie.mov"
Вы можете использовать функцию ShellExecute VB. Просто объявите заголовок API, и вы можете напрямую «вызвать» файл, чтобы открыть его в соответствующем приложении. Вот пример кода:
http://www.tomasvasquez.com.br/blog/microsoft-office/usando-a-funcao-shellexecute-no-vba
Извините за ссылку, но я пишу этот ответ со своего iPad, и здесь ужасно форматировать код. :(
Shell()
, чтобы открыть любой документ в его приложении по умолчанию (при условии, что для такого типа файла существует существующая ассоциация типа файла). - person Tim Williams   schedule 08.03.2012