Neste artigo você aprenderá como criar licença de uso no Excel com validade de tempo de uso.
Em um cenário onde o compartilhamento de planilhas e ferramentas em Excel se tornou cada vez mais comum – especialmente entre desenvolvedores, consultores e criadores de soluções personalizadas – proteger seu trabalho é essencial. Uma das formas mais eficazes de controlar o acesso e garantir que seu conteúdo seja utilizado dentro dos termos estabelecidos é a criação de uma licença de uso com validade de tempo.
Neste artigo, você vai aprender como implementar um sistema simples, seguro e eficaz de licenciamento com data de expiração. A ideia é permitir que o usuário utilize a planilha por um período determinado, validando automaticamente o computador e a data atual, sem necessidade de sistemas externos complexos ou ferramentas pagas.
Você verá passo a passo como:
- Controlar o uso da planilha com base no nome do computador;
- Verificar a validade de uma licença de uso;
- Utilizar dados externos hospedados no Google Sheets para permitir ou não o acesso;
- Proteger seu código contra cópias não autorizadas ou uso fora do prazo.
Se você quer distribuir planilhas comerciais, de uso interno ou em cursos, este modelo de licenciamento vai te ajudar a manter o controle, proteger sua propriedade intelectual e profissionalizar ainda mais suas soluções em Excel.
Como Criar um Formulário para Registrar Licença de Uso Excel no Google Sheets
Uma maneira prática e organizada de manter o controle das licenças de uso dos seus arquivos Excel é utilizar o Google Forms integrado ao Google Sheets. Com ele, você consegue registrar automaticamente os dados de cada usuário, como o nome do computador, a chave de licença fornecida e a data de validade da licença.

Passo a passo:
- Acesse o Google Forms
Vá para https://forms.google.com e clique em “+ em branco” para criar um novo formulário. - Configure os campos do formulário
Adicione os seguintes campos obrigatórios:- Nome do computador (tipo: resposta curta)
→ O valor retornado no VBA comEnviron("COMPUTERNAME"). - Licença de uso (tipo: resposta curta)
→ Chave ou código que será verificado na planilha. - Data de vencimento (tipo: data)
→ Quando essa licença expira.
- Nome do computador (tipo: resposta curta)
- Conecte o formulário ao Google Sheets
- Clique no ícone de planilha verde (no topo do formulário).
- Crie uma nova planilha ou conecte a uma existente.
- O Google Forms criará automaticamente colunas para cada campo preenchido, além de uma coluna com a data e hora da submissão.
- Publicação e coleta
- Envie o link do formulário para você mesmo ou para clientes internos preencherem quando uma nova licença for criada.
- Os dados ficarão salvos no Google Sheets e poderão ser usados pelo seu código VBA para validar licenças remotamente.
- Publicar a planilha como CSV
- Vá até a planilha vinculada ao formulário.
- Menu Arquivo > Publicar na Web.
- Escolha a aba correta e o formato CSV.
- Copie o link gerado – esse será o link que seu VBA vai acessar.
Como Gerar um Link que Preenche Automaticamente um Formulário do Google Forms
O Google Forms permite que você crie um link personalizado para preencher automaticamente os campos de um formulário, de forma simples, sem necessidade de programar ou inspecionar o código-fonte.

Veja como fazer isso:
✅ Passo a passo:
- Abra seu formulário no Google Forms
- No canto superior direito, clique nos três pontinhos (⋮) ao lado do ícone de enviar.
- Clique na opção “Obter link pré-preenchido” Isso abrirá uma versão especial do formulário, permitindo que você preencha os campos manualmente.
- Preencha os campos que deseja deixar já preenchidos
Exemplo:- Nome do computador:
MARCOSPC - Licença:
ABC123 - Data de vencimento:
30/06/2025
- Nome do computador:
- Após preencher os campos, clique no botão “Obter link” no final da página.
- Será gerado um link com os dados preenchidos. Clique em “Copiar link” e utilize esse endereço para compartilhar com o usuário.
Como Publicar uma Planilha do Google Sheets como CSV para Validação de Licenças
Para que seu código VBA no Excel consiga validar se uma licença está ativa, é necessário que a base de dados com os registros esteja disponível publicamente em formato CSV. Essa base pode ser preenchida automaticamente com os dados enviados por um formulário do Google Forms, como explicamos anteriormente.
Após criar a planilha com os dados e aplicar as fórmulas de verificação (por exemplo, usando ÍNDICE + CORRESP para relacionar e retornar a validade de uma chave), siga este processo para publicar a aba que contém os dados finais:
✅ Passo a passo: Como publicar como CSV
- Abra a planilha do Google Sheets onde estão os dados finais.
- Clique em Arquivo > Publicar na Web.
- Selecione a aba correta que contém os dados que o Excel deve ler.
- No tipo de arquivo, selecione Valores separados por vírgula (.csv).
- Clique em Publicar.
- Copie o link gerado, que terá esse formato:
rubyCopiarEditarhttps://docs.google.com/spreadsheets/d/e/SEU_ID_DE_PUBLICACAO/pub?gid=SUA_GID&single=true&output=csv
Esse link será usado dentro do código VBA para importar os dados da internet diretamente para dentro do Excel e validar as licenças.
Código VBA Licença de Uso Excel: Conferir Licença com Dados Online (CSV publicado)
Abaixo está a função lfConferirLicenca, que pode ser usada no seu projeto para validar se a planilha está autorizada a funcionar, conforme o nome do computador e chave de licença.
Ela utiliza o recurso QueryTables para importar o CSV publicado direto para memória, compara os dados e retorna True ou False
Public Function lfConferirLicenca() As Boolean
Dim wbTemp As Workbook
Dim wsTemp As Worksheet
Dim qt As QueryTable
Dim URL_CSV As String
Dim nomeComputador As String
Dim licencaLocal As String
Dim ultimaLinha As Long
Dim i As Long
Dim licencaCSV As String, compCSV As String, dataCSV As String
Dim dataLimite As Date
Dim appExcelTemp As Excel.Application
Dim isNewInstance As Boolean
On Error GoTo TratarErro
lfConferirLicenca = False
'URL_CSV = "https://docs.google.com/spreadsheets/d/e/2PACX-1vQjHss1KScT-7cHCEw_wKSMtjk1YvyZW407aiG1N8LA7D36o_uIvULiy_ymql9j3DP5IJ3eF3odUYjT/pub?gid=163651194&single=true&output=csv"
URL_CSV = "https://docs.google.com/spreadsheets/d/e/2PACX-1vQjHss1KScT-7cHCEw_wKSMtjk1YvyZW407aiG1N8LA7D36o_uIvULiy_ymql9j3DP5IJ3eF3odUYjT/pub?gid=1474548992&single=true&output=csv"
nomeComputador = Environ$("COMPUTERNAME")
licencaLocal = ThisWorkbook.Sheets("Licença").Range("A1").Value
' Cria uma nova instância invisível do Excel (100% isolada)
Set appExcelTemp = New Excel.Application
appExcelTemp.Visible = False
isNewInstance = True
' Cria um workbook temporário invisível
Set wbTemp = appExcelTemp.Workbooks.Add(xlWBATWorksheet)
Set wsTemp = wbTemp.Sheets(1)
' Importa via QueryTable
Set qt = wsTemp.QueryTables.Add(Connection:="TEXT;" & URL_CSV, Destination:=wsTemp.Range("A1"))
With qt
.TextFileParseType = xlDelimited
.TextFileCommaDelimiter = True
.Refresh BackgroundQuery:=False
End With
' Lê os dados importados
ultimaLinha = wsTemp.Cells(wsTemp.Rows.Count, 1).End(-4162).Row ' xlUp = -4162
For i = 2 To ultimaLinha
licencaCSV = Trim(wsTemp.Cells(i, 1).Value)
compCSV = Trim(wsTemp.Cells(i, 2).Value)
dataCSV = Trim(wsTemp.Cells(i, 3).Value)
On Error Resume Next
dataLimite = CDate(dataCSV)
On Error GoTo 0
If licencaCSV = licencaLocal And compCSV = nomeComputador Then
If Date <= dataLimite Then
lfConferirLicenca = True
Exit For
End If
End If
Next i
TratarSaida:
On Error Resume Next
If Not wbTemp Is Nothing Then wbTemp.Close SaveChanges:=False
If isNewInstance Then appExcelTemp.Quit
Set wsTemp = Nothing
Set wbTemp = Nothing
Set appExcelTemp = Nothing
Exit Function
TratarErro:
lfConferirLicenca = False
Resume TratarSaida
End Function
Como Enviar os Dados do Computador e da Licença Automaticamente para um Formulário do Google Forms com VBA
Para tornar o processo de licenciamento ainda mais profissional e automatizado, você pode permitir que o próprio Excel envie os dados do computador, a chave de licença e a data de vencimento diretamente para um formulário do Google Forms, sem que o usuário precise abrir nada manualmente.
Essa ação é feita com um simples clique de botão e garante que o seu sistema de licenciamento online esteja sempre sincronizado com a base de dados central.

Abaixo está o código usado no botão cmdEnviar, que envia os dados preenchidos diretamente ao Google Forms por meio de um recurso interno do VBA chamado ServerXMLHTTP.

✅ Explicação do que o código faz:
txtChave: campo do formulário no Excel onde o usuário insere a chave de licença.Environ("COMPUTERNAME"): retorna o nome da máquina.DateAdd("m", 12, Now()): define validade da licença para 12 meses a partir da data atual.EncodeURL: garante que os valores enviados fiquem compatíveis com URLs (por exemplo, trocando espaços por%20).formResponse?entry.X=: estrutura padrão do Google Forms para envio direto de dados.ServerXMLHTTP.Send: realiza o envio sem abrir navegador.- Após o envio, a chave é gravada na célula
A1da abaLicenca.
Private Sub cmdEnviar_Click()
Dim lstrChave As String
Dim lstrComputador As String
Dim ldtData As String
Dim lstrForm As String
Dim lohttp As Object
If frmChave.txtChave.Value <> "" Then
lstrComputador = WorksheetFunction.EncodeURL(Environ$("COMPUTERNAME"))
lstrChave = WorksheetFunction.EncodeURL(frmChave.txtChave.Value)
ldtData = WorksheetFunction.EncodeURL(Format(DateAdd("m", 12, Now()), "yyyy-mm-dd"))
Else
MsgBox "Informe a chave"
End If
lstrForm = "https://docs.google.com/forms/d/e/1FAIpQLSepYdm5MxDRlb291QHtKVT5_CSTm96HrihbQtgLn2bxJKxpEw/" & _
"formResponse?usp=pp_url&entry.103627585=" & lstrComputador & "&entry.921698344=" & lstrChave & _
"&entry.1835656199=" & ldtData & "&submit=Submit"
Set lohttp = CreateObject("MSXML2.ServerXMLHTTP")
lohttp.Open "GET", lstrForm, False
lohttp.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
lohttp.Send
Licenca.Range("a1").Value = lstrChave
If lfConferirLicenca Then
MsgBox "Cadastro concluído!"
Unload Me
Habilitar.Visible = xlSheetVeryHidden
Home.Visible = xlSheetVisible
Home.Select
Else
Habilitar.Visible = xlSheetVisible
Home.Visible = xlSheetVeryHidden
MsgBox "Chave inválida ou já utilizada em outro computador!"
End If
End Sub
Segurança e organização:
- Os campos
entry.103627585,entry.921698344,entry.1835656199devem ser os mesmos do seu Google Form.
Você pode encontrá-los usando o recurso “Obter link pré-preenchido” no Google Forms. - O envio é silencioso: o usuário não vê nenhuma janela do navegador.
- Ideal para quem distribui planilhas comerciais e deseja centralizar o controle de licenças de maneira confiável.
Download Planilha de Licença de Uso Excel com Validade de Tempo
Clique no botão abaixo para realizar o download da planilha de senha de abertura no Excel, com exemplo de dados:



