Vídeo recomendado
https://youtu.be/diWPPPhW-9E
https://youtu.be/diWPPPhW-9E
Excel - Ativando Macros Automaticamente
Moderador: Rafael Monteiro
- Mikel Silveira Fraga
- Jedi
- Mensagens: 1173
- Registrado em: Sex Mai 27, 2011 3:27 pm
- Localização: Governador Valadares - MG
- Contato:
Re: Excel - Ativando Macros Automaticamente
Boa noite a todos os amigos do fórum.
Como mencionado nas respostas anteriores, consegui gerar uma outra maneira de ativar as macros para uma arquivo de distribuição.
Conforme mencionado, segui os passos encontrados no site Usando Access e o adaptei para ser utilizado em qualquer distribuição office que se deseja, desde o Access, Excel, Word ou outra aplicação office que possua Macros/Códigos VBA para serem executados.
Como a ideia deste script é ativar automaticamente a execução de um arquivo com macro, através de um arquivo de distribuição (instalador), o arquivo do VBScript pode ser copiado para pasta da aplicação e executado ao final da instalação de sua distribuição.
Ao ser executando, o script irá capturar o diretório corrente (um comando parecido com o "ThisWorkbook.Path") e irá torná-lo como um Local Confiável do aplicativo do MS Office utilizado, através de um inclusão de chaves no Registro do Windows, conforme imagens abaixo. Não acho que essa seja a melhor linguagem de se desenvolver esse processo de Ativação Automática de Macros, mas resolvi fazê-lo com base no VBScript, pelo fato dos comandos, sintaxes e toda a estrutura ser idêntica aos do VBA. Dessa maneira, os usuários que tiverem interesse em adaptar o comando, não terão dificuldade no processo de manutenção do código, além de ser uma excelente oportunidade dos mesmos estarem expandindo seus conhecimentos.
Estou enviando o arquivo do script em anexo no formato original (.vbs). Este script foi escrito em um programa chamado VBSEdit, onde também é possível realizar a conversão do arquivo VBS em EXE, de acordo com o interesse e necessidade do usuário.
Espero que gostem do resultado. Abraços a todos e boa noite.
Como mencionado nas respostas anteriores, consegui gerar uma outra maneira de ativar as macros para uma arquivo de distribuição.
Conforme mencionado, segui os passos encontrados no site Usando Access e o adaptei para ser utilizado em qualquer distribuição office que se deseja, desde o Access, Excel, Word ou outra aplicação office que possua Macros/Códigos VBA para serem executados.
Como a ideia deste script é ativar automaticamente a execução de um arquivo com macro, através de um arquivo de distribuição (instalador), o arquivo do VBScript pode ser copiado para pasta da aplicação e executado ao final da instalação de sua distribuição.
Ao ser executando, o script irá capturar o diretório corrente (um comando parecido com o "ThisWorkbook.Path") e irá torná-lo como um Local Confiável do aplicativo do MS Office utilizado, através de um inclusão de chaves no Registro do Windows, conforme imagens abaixo. Não acho que essa seja a melhor linguagem de se desenvolver esse processo de Ativação Automática de Macros, mas resolvi fazê-lo com base no VBScript, pelo fato dos comandos, sintaxes e toda a estrutura ser idêntica aos do VBA. Dessa maneira, os usuários que tiverem interesse em adaptar o comando, não terão dificuldade no processo de manutenção do código, além de ser uma excelente oportunidade dos mesmos estarem expandindo seus conhecimentos.
Estou enviando o arquivo do script em anexo no formato original (.vbs). Este script foi escrito em um programa chamado VBSEdit, onde também é possível realizar a conversão do arquivo VBS em EXE, de acordo com o interesse e necessidade do usuário.
Espero que gostem do resultado. Abraços a todos e boa noite.
- Anexos
-
- activeTrustedLocations.zip
- Arquivo do VBScript (.vbs).
- (900 Bytes) Baixado 542 vezes
Re: Excel - Ativando Macros Automaticamente
Mikel,
Estou colocando o código abaixo para facilitar. Precisei fazer um rodeio para conseguir baixar o arquivo pois os navegadores bloqueavam de todo jeito.
Att,
Estou colocando o código abaixo para facilitar. Precisei fazer um rodeio para conseguir baixar o arquivo pois os navegadores bloqueavam de todo jeito.
Código: Selecionar todos
'----------------------------------------------------------------------------
'Este script ir· alterar o registro do Windows, com o propÛsito
'de tornar uma pasta confi·vel, para todos os usu·rios.
'----------------------------------------------------------------------------
'----------------------------------------------------------------------------
'Inicio dos Scripts.
'----------------------------------------------------------------------------
'DeclaraÁ„o Vari·veis
Dim WshShell, appOffice 'Shell do Window e Aplicativo Office.
Dim strCurDir, strRegEdit
Dim strObjVer, strObjName
'Chama rotinas para iniciar os objetos WScript e MSExcel.
Set WshShell = CreateObject("WScript.Shell")
Set appOffice= CreateObject("Excel.Application")
'Definem a vers„o e o nome do aplicativo.
strObjVer = appOffice.Version
strObjName = Replace(appOffice.Name,"Microsoft ","")
'Define a vari·vel strCurdir, com o endereÁo local.
strCurDir = WshShell.CurrentDirectory
'Monta o endereÁo do registro, onde ser· inserida as chaves.
strRegEdit = "HKEY_CURRENT_USER\Software\Microsoft\Office\"
strRegEdit = strRegEdit & strObjVer & "\" & strObjName
strRegEdit = strRegEdit & "\Security\Trusted Locations\ProjetoSeguro\"
'------------------------------
'Configurando pasta confi·vel
'------------------------------
With WshShell
'Seta subpastas como confi·vel
.RegWrite strRegEdit & "AllowSubfolders", 1, "REG_DWORD"
'data e hora da configuraÁ„o
.RegWrite strRegEdit & "Date",Now,"REG_SZ"
'DescriÁ„o sobre a pasta
.RegWrite strRegEdit & "Description","Projeto AutoExec","REG_SZ"
'Informa local e nome da sua pasta confi·vel
'ATEN«√O - configure o nome da sua pasta
.RegWrite strRegEdit & "Path",strCurDir,"REG_SZ"
End With
msgbox "Local confi·vel configurado..."
'Limpa os objetos WScript e MS Excel.
Set WshShell = Nothing
Set appOffice = nothing
Re: Excel - Ativando Macros Automaticamente
Mikel,
Quanto a sua pergunta sobre VBScript, acredito que seja uma possibilidade. Porém, o uso deste tipo de script normalmente é focado em automação de rotinas de rede e tem caído em desuso, seja por questões de idade e segurança, sendo substituído por rotinas no PowerShell.
Se o objetivo a ser alcançado é ser mais "independente", digo com propriedade que não se preocupe. O .NET existe desde 2002 e vem enbutido no Windows desde o Vista, além de ser uma atualização recomendada. Acredito ser uma abordagem aceitável. A alternativa perfeita para mim é um bom gerenciamento de certificados digitais na rede onde o aplicativo será executado.
Att,
Tomás
Quanto a sua pergunta sobre VBScript, acredito que seja uma possibilidade. Porém, o uso deste tipo de script normalmente é focado em automação de rotinas de rede e tem caído em desuso, seja por questões de idade e segurança, sendo substituído por rotinas no PowerShell.
Se o objetivo a ser alcançado é ser mais "independente", digo com propriedade que não se preocupe. O .NET existe desde 2002 e vem enbutido no Windows desde o Vista, além de ser uma atualização recomendada. Acredito ser uma abordagem aceitável. A alternativa perfeita para mim é um bom gerenciamento de certificados digitais na rede onde o aplicativo será executado.
Att,
Tomás
Re: Excel - Ativando Macros Automaticamente
Além do mais, o .NET não é a única alternativa para o feito. Outras linguagens como python e java são capazes da mesma façanha. Neste contexto, é uma questão de escolha.
Att
Att
- Mikel Silveira Fraga
- Jedi
- Mensagens: 1173
- Registrado em: Sex Mai 27, 2011 3:27 pm
- Localização: Governador Valadares - MG
- Contato:
Re: Excel - Ativando Macros Automaticamente
Boa tarde Tomas, tudo bem?
Vi seu post no final de semana, mas somente hoje consegui ler com mais calma. Vou dar uma analisada as opções apontadas por você, pois já estou a algum tempo pensando em aprofundar um pouco mais em outras linguagens, estou apenas avaliando qual será mais interessante para minhas necessidades.
Muito obrigado pelo retorno e excelente semana de trabalho.
Vi seu post no final de semana, mas somente hoje consegui ler com mais calma. Vou dar uma analisada as opções apontadas por você, pois já estou a algum tempo pensando em aprofundar um pouco mais em outras linguagens, estou apenas avaliando qual será mais interessante para minhas necessidades.
Muito obrigado pelo retorno e excelente semana de trabalho.
Re: Excel - Ativando Macros Automaticamente
Rilton,
Você pode criar um atalho para o executável na área de trabalho.
Com o direito do mouse no atalho, selecione Propriedades => Alterar Ícone => Procurar => Aplicar => Ok
Espero ter ajudado.
Você pode criar um atalho para o executável na área de trabalho.
Com o direito do mouse no atalho, selecione Propriedades => Alterar Ícone => Procurar => Aplicar => Ok
Espero ter ajudado.
Re: Excel - Ativando Macros Automaticamente
Olá, meu objetivo é distribuir uma planilha a várias pessoas a distância, impedindo que elas compartilhem com qualquer outra pessoa como se elas tivessem criado o produto. Não sei nada de linguagem de programação. Achei bastante interessante esse artigo. Uma dúvida, se a pessoa que recebeu uma pasta que contém a linguagem de programação + a planilha, excluir o arquivo que contém a linguagem ou movê-la de lugar, ela quebra a segurança?? Grato pela resposta.
- Mikel Silveira Fraga
- Jedi
- Mensagens: 1173
- Registrado em: Sex Mai 27, 2011 3:27 pm
- Localização: Governador Valadares - MG
- Contato:
Re: Excel - Ativando Macros Automaticamente
Davi, boa tarde e seja bem vindo ao fórum.
Se quiser distribuir sua planilha, visando segurança, esqueça. Infelizmente, um arquivo em Excel é muito frágil quando o assunto é senhas de segurança.
A ideia principal discutida nesse tópico esta relacionada a Segurança de Execução de Macros e como removê-las automaticamente, permitindo que sua aplicação rode sem a necessidade de ficar, a todo tempo, Habilitando as Macros no aplicativo.
Caso queira buscar mais sobre segurança, no fórum existem vários tópicos que falam a respeito.
Abraços e excelente semana.
Se quiser distribuir sua planilha, visando segurança, esqueça. Infelizmente, um arquivo em Excel é muito frágil quando o assunto é senhas de segurança.
A ideia principal discutida nesse tópico esta relacionada a Segurança de Execução de Macros e como removê-las automaticamente, permitindo que sua aplicação rode sem a necessidade de ficar, a todo tempo, Habilitando as Macros no aplicativo.
Caso queira buscar mais sobre segurança, no fórum existem vários tópicos que falam a respeito.
Abraços e excelente semana.
Re: Excel - Ativando Macros Automaticamente
Li e reli seu tutorial, mas tenho certeza que fiz algo errado ou deixei de fazer alguma coisa, não funcionou.
Ah, outra coisa, baixei o arquivo exemplo e le não executou minhas macros. que faltou fazer?
Ah, outra coisa, baixei o arquivo exemplo e le não executou minhas macros. que faltou fazer?
Re: Excel - Ativando Macros Automaticamente
Simplesmente não funciona aparece a mensagem de erro algo como caminho longo ou inválido. Como já citado por alguns neste blocowebmaster escreveu:Arquivos de exemplo do post:
http://www.tomasvasquez.com.br/blog/mic ... aticamente
Bom proveito!
Grato Augusto