Открытие файлов с помощью Filepath Excel-VBA - PullRequest
0 голосов
/ 08 марта 2012

Можно ли открыть все типы файлов из Excel vba только путем к файлу? Прямо сейчас я могу открыть рабочие тетради с помощью простого:

Workbooks.Open myDestFilePath 

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

Ответы [ 3 ]

2 голосов
/ 08 марта 2012

Для использования внутренних звонков, без API.Я не нашел много, что

ThisWorkbook.FollowHyperlink "FilePath"

не откроется

Например:

ThisWorkbook.FollowHyperlink  "D:\My documents\Movie.mov"
1 голос
/ 08 марта 2012

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

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

Извините за ссылку, но я пишу этот ответ со своего iPad, и форматировать код здесь ужасно. (

0 голосов
/ 08 марта 2012

Вы можете абсолютно использовать 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?» ответ - да.

...