Avançar para o conteúdo principal

Excel - Executar programas externos

Excel - Executar programas externos

O Excel tem a linguagem de programação VBA, qual seria o propósito de executar um programa externo ao Excel desde o próprio Excel?


Uma resposta interessante poderia ser proteger o código, e usufruir de todas as potencialidades por exemplo de uma linguagem e ecossistema como o CSharp.

Com um uso prático em vista, posso desde o Excel criar um botão que se associa a uma macro. Esta macro não faz mais que executar o programa externo que num exemplo poderia ler o próprio ficheiro de Excel e montar ficheiros para o ISPOL ou CAD.

Ficheiros como o seguinte, podem ser assim obtidos directamente desde o ambiente Excel.



Com o VBA (Visual Basic for Applications) não podemos usufruir de todas as potencialidades de uma linguagem como o CSharp. Muita coisa pode ser feita em VBA, mas é mais uma linguagem variante, BASIC, dispersando o conhecimento e saber fazer. 

Exemplo de macro a implementar no Excel

Sub cmd_test()

Dim cmd As String

Dim ret As Double

 cmd = "cmd.exe /c dir C: > C:\C_DIR.xls"

ret = Shell(cmd, vbHide)

End Sub

Este código acima não está testado, mas testei outro semelhante e funcionava.

Outro assunto importante é a protecção do código, que no fundo é a protecção do trabalho de um indivíduo ou empresa. Fórmulas e macros mesmo que protegidas podem ser mais facilmente copiadas.

A partilha de conhecimento é importante, mas também é importante ter algum resguardo.





Comentários

Mensagens populares deste blogue

ISPOL - Representação de Gabaris

ISPOL - Representação de Gabaris No ISPOL podemos representar ao longo do traçado um contorno e até realizar variações. A representação de um contorno ou gabari pode ser realizada no ISPOL de um modo simples, usando por exemplo um Símbolo (bloco) da biblioteca, ou um ou vários criados à medida para atender aos casos necessários. Na imagem abaixo um exemplo da biblioteca do ISPOL, representado no perfil transversal. Estas secções são constituídas por símbolos/blocos: Podem-se desenhar ao longo do eixo proporcionando a vista típica destas situações, uma espécie de sólido que enche o traçado. Além desta representação "simples" o ISPOL permite realizar transições entre símbolos diferentes, por exemplo para representar os diferentes gabaris em recta e curva. Ou outras situações que se achem necessárias. Permite ainda condicionar a representação destes símbolos por valores de raio. Isto é para um determinado raio. Pode ser usado para indicar de forma automática ao programa que em r...

Python - Automatização em ISPOL

Python - Automatização em ISPOL Com o uso de PyAutoGui podemos automatizar tarefas repetitivas no ISPOL ISTRAM. No trabalho actual, é necessário converter mais de 300 ficheiros. Já houve um trabalho prévio de ler e transformar dados de directrizes em Excel para ficheiros compatíveis com a conversão presente. Este trabalho prévio foi também feito com programação. Tendo os muitos ficheiros com formato TXT que o ISPOL pode ler e converter para CEJ, é necessário ir ao menu de Conversores do ISTRAM e digitar os dados para ler a localização dos ficheiros, número de eixo etc... um trabalho repetitivo. Sendo repetitivo uma hipótese que deve surgir é se existe forma de automatizar / programar. O ISTRAM ISPOL não permite o uso de plugins (como o CAD), por tanto a via seria pela automatização dos movimentos. O pacote PyAutoGUI para Python permite esta simulação de movimentos. https://pyautogui.readthedocs.io/en/latest/ Basicamente "guiamos" o cursor para onde deve clicar e o que introdu...

Kinematic Envelope - Vários exemplos

Kinematic Envelope - Vários exemplos Adiciono uma pequena lista de desenvolvimentos sobre o assunto de Gabaritos ferroviários. Para mais informação veja outros posts. AECOM Desenvolvimento no Civil 3D ao que parece, com dynamo. Não se percebe com que norma. https://youtu.be/BdRDICErJJ8?si=0MD8xGx_W1PCG5dP Mehdi Taheri Plataforma independente, não se conhece sobre que normativa. https://www.youtube.com/watch?v=LXUusfK25bs 12D Provavelmente é algo similar à AREMA, 12D é uma empresa da Austrália, creio https://www.youtube.com/watch?v=OQnaDt7IOXw