Excel built-in caixas de diálogo
Pergunta
Alguém sabe como chamar a import data
built-in excel de diálogo a partir de uma macro (VBA)?
Eu tentei Application.Dialogs.Item(...).Show
mas não posso encontrar a janela direita.
Por favor, ajuda.
Agradecemos antecipadamente.
Solução
O mais próximo que pode encontrar usando o sistema de diálogo é:
Application.Dialogs(xlDialogImportTextFile).Show
Você pode obter uma referência para o botão da barra de comando (pelo menos para mim, tanto 2k3 e 2k7) via:
Set button = Application.CommandBars.FindControl(ID:=6262)
Mas chamar o método Execute
no botão falhar. Infelizmente, a resposta curta parece ser que não é possível.
Você pode adicionar objetos QueryTable à mão. Embora não seja um caminho ideal, você poderia projetar seu próprio interface simples para selecionar os dados de origem.
Outras dicas
Se você escolher o localizador de objectos e procurar digamos, xlDialogImportTextFile, você receberá uma lista de possíveis diálogos.
EDIT: Talvez algo sobre estas linhas serviria:
'Allow user to select text file
sf = Application _
.GetOpenFilename("Text Files (*.txt), *.txt")
If sf <> False Then
'Open text file
Workbooks.OpenText sf
End If
Eu não acho que há um equivalente VBA, porque em um caso você estiver retornando dados para uma planilha, enquanto no outro caso, os dados são colocados em um conjunto de registros na memória.
Esta kludge deve aparecer a caixa de diálogo para você, no entanto:
SendKeys "%ddd"