Suponha que você queira enviar uma versão demo de um arquivo para um usuário examinar, mas você não quer que ele seja utilizado mais do que um determinado número de vezes, talvez seja uma versão trial que só deseje liberar após um determinado pagamento. Há uma série de abordagens possíveis para esta situação, mas aqui eu vou mostrar para o uso de algumas declarações VBA simples, chamadas SaveSetting e GetSetting .
Aqui está uma imagem de todo o procedimento. É executado cada vez que o arquivo é aberto. Se o código VBA for protegido por senha, o usuário não será capaz de evitar facilmente que o programa de demonstração expire.
A sintaxe para GetSetting é:
… E para SaveSetting é:
Cada um dos parâmetros contém um nome arbitrário que você fornecer para acessar informações armazenadas em ou ler a partir do registo.
O AppName é mais como uma categoria principal, o ponto é uma subcategoria e o Key é ainda uma outra categoria. Ele fica mais claro com o exemplo. A primeira vez que este arquivo é aberto, a instrução N = GetSetting (“Demo”, “Demo”, “Demo”, 0) +1 é executado. O quarto parâmetro é o valor padrão dado se nenhuma configuração é, na verdade, já armazenadas.Então, pela primeira vez, o GetSetting retorna 0 . Adicionando 1 para esta armazena um 1 na variável n .
Então n não é 5 (ainda), e ele corre para o SaveSetting . A declaração SaveSetting “Demo”, “Demo”, “Demo”, n agora armazena o valor 5 no registro. A próxima vez que o arquivo for aberto, o GetSetting retorna esse 1 , e 1 é adicionado a ele e armazenado em n . Ainda não 5 , e agora um 2 é armazenado no registro, etc. Eventualmente, o GetSetting retorna 5 , n é 6 , eo programa termina depois de dar uma mensagem para o usuário.
Para repor esta a zero em sua própria máquina, você pode executar SaveSetting “Demo”, “Demo”, “Demo”, 0, ou você pode executar uma outra variação do VBA, chamado DeleteSetting . Esta sintaxe é:
Como você pode ver, a Seção e Key são opcionais. Então execução DeleteSetting “Demo”limpa o registro do NomeAplic bem como Seção e Key .
Por último, o valor armazenado não se limita a números como tenho mostrado neste exemplo, ele pode ser qualquer string que você queira, usando-o como uma área de armazenamento para qualquer finalidade.
– Bob Umlas, Excel MVP
Traduzido de: http://blogs.office.com/2012/01/04/vba-tip-limit-the-number-of-times-a-file-can-be-opened/
Limite o número de vezes que um arquivo XLS e XLSX pode ser aberto
682 views
3 Comentários. Deixe novo
Boa dica Diego.
Estou cursando o vba voltado a excel pelo curso adv, http://www.cursoadv.com.br.
Gostaria de saber se esta ferramenta funciona também para planilhas.
boa tarde, caro.
Funciona sim!
As dicas neste caso são específicas para arquivos XLS e XLSX, nativos do Excel
abs
E após o limite como vou acessar o ambiente de desenvolvimento? Ele abre normalmente? Sou iniciante com esse tipo de programação.