Olá, seguidor e seguidora do blog!
Neste quarto artigo da série que estou escrevendo: COMO EU APRENDI, vou falar sobre meu processo de aprendizagem da linguagem de desenvolvimento chamada Office Script, incorporada pela Microsoft ao Excel para criação de scripts (ou macros) para rodar na versão online do aplicativo (e mais recentemente, na versão desktop também).
Começo dizendo que meu processo de aprendizagem neste caso não foi um mar de rosas… Foi bem difícil e complicado aprender o Office Script, principalmente pelo fato de que, no início de sua disponibilidade não havia muita documentação oficial da Microsoft, e o que existia era ruim. Para mim, era ruim por um único motivo: não foi escrito para um power User de VBA…
Vamos por partes!
O Office Script é derivado do TypeScript, uma linguagem incorporada ao Office para desenvolvimento de soluções de automação para as planilhas online, a linguagem é fortemente tipada (se você ainda não leu sobre esse tema, tipar é classificar uma variável com um tipo de dado específico que ela vai armazenar).
O TypeScript é um superset do Javascript que você usa com muita frequência, mas pode ainda não ter se dado conta. O Javascript coloca “ação” em uma página Web tradicional e não é uma linguagem tipada. O compilador sabe qual tipo de dado que está armazenado na variável em tempo de execução da página e de suas rotinas. Como não sou especialista no assunto, não vou me aprofundar… Há grandes nomes no mercado que são especialistas na área e você pode acompanhá-los.
Vamos ao foco do artigo!
Um desenvolvedor de macros em Excel está acostumado a pensar de forma estruturada. Uma subrotina em VBA executa suas instruções passo a passo com raros saltos ou desvios no código. É uma linguagem procedural que estamos acostumados a usar há décadas. Sair de um ambiente controlado para um ambiente onde as ações e as respostas podem ser executados de modo assíncrono bagunça a cabeça de qualquer um…
Até mesmo uma rotina bem simples de percorrer elementos de um array pode ser complicado, pois outras ações podem ser executadas simultaneamente. Uma doideira para quem não viu isso ainda em VBA.
Lembro que minha primeira rotina escrita em Office Script era bem simples… Capturar o valor de uma célula, fazer um cálculo nela e devolver o resultado para uma outra célula na planilha. Fazer isso em VBA é brincadeira de criança, mas na hora que fui para o ambiente, a primeira decepção: não há um ambiente como o VBE (Editor do Visual Basic) incorporado ao Excel.
Para desenvolver no Office Script, nos primórdios usávamos um painel lateral que quase não podia ser expandido, deixando um espaço minúsculo para escrever o código.
Quem já leu um código em Office Script ou já assistiu alguma aula minha já notou que o script começa com a palavra function… Depois vem um main acompanhado de parênteses e depois de chaves. Uma típica estrutura Javascript. Até entender que é obrigatório ter uma function chamada main para executar o código, passou-se muito tempo.
Depois de quase 2 horas tentando fazer o código e muito frustrado, resolvi fazer um teste e escrever essa rotina no Google Sheets. Resultado: 5 minutos e a aplicação estava pronta… E não só isso! Ainda consegui criar planilhas, apagar planilhas, formatar células… Mas, calma! Não vou fugir do escopo do artigo. Só estou dizendo que o Google Sheets já estava no mercado oferecendo scripts há anos e que já estava bem mais maduro que o Office Script.
Resolvi parar de sofrer e utilizando a técnica de aprendizado que normalmente utilizo, fiz o feijão com arroz. Fui assistir a um curso de TypeScript no Youtube para “entender” o que tinha feito de errado…
Agora você deve estar pensando: Ué?!?! Não foi estudar Office Script?
Não estudei Office Script pois como disse, a documentação era horrível. Resolvi utilizar conhecimentos que já tinha em outras linguagens e “desligar” o meu cérebro para o método procedural, entendendo as origens do Office Script.
Para minha sorte, a Gláucia Lemos tinha lançado um curso sobre o TypeScript no Youtube, totalmente gratuito e um curso do jeito que gosto: trabalhando conceitos essenciais da linguagem. Criação de variáveis, o que são functions, tipos de dados, objetos do TypeScript e muitos outros recursos.
O link para a playlist pode ser obtido clicando aqui. Não deixe de se inscrever como forma de agradecimento por esse curso sensacional!
Não precisei assistir ao curso todo para entender que o básico do TypeScript já era o suficiente para entender o mecanismo da linguagem, dai para frente foi começar a pesquisar os objetos específicos do Office Script.
Hora de aplicar a técnica de aprendizado da nova linguagem (se você não viu os outros artigos, reproduzo eles aqui).
Perguntas que faço e tento responder no processo do aprendizado:
- como o ambiente trabalha com as operações matemáticas essenciais?
- como o ambiente faz operações comparativas?
- quais são os tipos primitivos de dados que a linguagem ou ferramenta trabalha?
- como se declara uma variável?
- como se utiliza a variável?
- quais são os escopos de aplicação de uma variável?
- quais são as funções básicas de tratamento de números?
- quais são as funções básicas de texto?
- quais são as estruturas de repetição?
- quais são as estruturas de decisão?
Perguntas respondidas, horas e horas de estudos e testes para depois iniciar definitivamente o desenvolvimento…
Logo na declaração inicial da function, uma variável é declarada para permitir a manipulação da pasta de trabalho do Excel e, sem perceber, lá estava a forma aberta de declarar uma variável. Depois descobri que podemos utilizar ainda var e let para fazer as declarações, um assunto para outro artigo! 😊
Alguns conceitos tiveram que ser estudados e outros conhecimentos precisaram de uma reciclagem, por exemplo, tive que aprender o que é o : (type annotation), uma forma de declarar o tipo de uma variável no TypeScript, tive que aprender a reescrever um if (para testes lógicos) e mudar a estrutura de uma estrutura de repetição como o while. Além da mudança na declaração da variável, escopo das variáveis, criação de functions, etc… A lista é longa!
Não vou ficar colocando códigos aqui no artigo, mas se quiser ver a playlist do Office Script, acesse clicando aqui. Há quase 20 horas de conteúdo sobre como você pode iniciar seus estudos e desenvolvimentos no Office Script.
Se gosta de um curso bem estruturado, com uma sequência lógica de aprendizado, com muitos exemplos e certificado de conclusão no final, você pode adquirir o meu curso de Office Script. O único gravado no Brasil de forma estruturada.
Há ainda muito o que evoluir na linguagem como por exemplo o acesso a dados externos, o vínculo com outros aplicativos do Office, utilizar recursos de bibliotecas de terceiros. Acredito que com o tempo algumas dessas inovações acabem acontecendo. Elas estão vindo com o vínculo com o Power Automate, mas como um desenvolvedor de soluções, gostaria de ver isso nativo na linguagem…
As novidades continuam aparecendo no ambiente e as últimas foram: adição de botões para associar os scripts para executá-los direto da planilha. Compartilhar o código junto com a pasta de trabalho, melhora no tamanho do painel de desenvolvimento, acesso à APIs externas, entre outras….
Com o advento do Python no Excel, acreditei que a linguagem seria descontinuada ou extinta mas, segundo o Carlos Otero da Microsoft quando respondeu minha pergunta em uma postagem no LinkedIn, isso não vai acontecer. As fichas estão na mesa, a linguagem é muito boa e a nós cabe esperar quais serão os próximos passos…
O aprendizado foi fácil? Não… Mas valeu cada gota de suor e neurônio queimado no processo de aprendizado… Conhecimento nunca é demais. Concorda comigo?
Que assunto gostaria que eu escrevesse no próximo artigo? Deixe sua sugestão
nos comentários!
nos comentários!
Até o próximo artigo!
Alessandro
Trovato
Compartilhando conhecimento, sempre!
#OfficeScript#TypeScript #ScriptsOffice #microsoft365 #M365 #O365 #trovato #cursostrovato #aprendizado
#artigo
Postagens anteriores:
Catálogo de aulas (NOVIDADE)
Criei um catálogo de aulas para ajudar você em seus estudos. Acesse clicando na imagem abaixo ou clique aqui.