Usando a função ShellExecute no VBA

 

EXECUTE ISSO!

A maioria dos desenvolvedores VBA conhecem a função Shell, que permite executar aplicativos baseados em seu caminho completo, por exemplo:

1
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:

1
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:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
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!

Comentários

comentários