Usando a função ShellExecute no VBA
A maioria dos desenvolvedores VBA conhecem a função Shell, que permite executar aplicativos baseados em seu caminho completo, por exemplo:
Shell("C:\Aplicativo.exe")
Porém, esta rotina se aplica apenas a executáveis. Caso fosse necessário abrir determinado arquivo, por exemplo, um documento do Word, existem dois caminhos:
- Passar o caminho do documento como parâmetro para o aplicativo usando a própria função Shell, por exemplo:
Shell ("WINWORD" & " " & """C:\temp\documento.doc""")
- Usar a função ShellExecute.
A função ShellExecute é capaz de “executar” um determinado arquivo, abrindo o arquivo associado a este, parâmetro determinado pelo Windows. É útil quando sabemos apenas o caminho do arquivo, e não de seu aplicativo, até porque isso pode mudar de computador para computador. Um exemplo do código pode ser visto abaixo:
Const SW_SHOW = 1
Const SW_SHOWMAXIMIZED = 3
Public Declare Function ShellExecute Lib "Shell32.dll" Alias "ShellExecuteA" _
(ByVal hwnd As Long, _
ByVal lpOperation As String, _
ByVal lpFile As String, _
ByVal lpParameters As String, _
ByVal lpDirectory As String, _
ByVal nShowCmd As Long) As Long
Sub AbrirArquivo()
On Error Resume Next
Call ShellExecute(0, "open", "caminho do arquivo", "argumentos", _
"pasta onde está localizado o arquivo", SW_SHOWMAXIMIZED)
End Sub
As constantes declaradas são apenas para auxiliar a chamada da função. Perceba que é necessário apenas saber o caminho do arquivo. Os parâmetro “argumentos” pode ser vazio caso não seja necessário.
É mais uma alternativa para facilitar a manipulação de arquivos sem fazer referências diretas em nosso aplicativo.
Bom proveito!
Tomás Vásquez

0 Responses to “Usando a função ShellExecute no VBA”
Leave a Response