Como Criar Licença de Uso no Excel com Validade por Tempo

Planilha com licença de uso no Excel

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:

  1. Acesse o Google Forms
    Vá para https://forms.google.com e clique em “+ em branco” para criar um novo formulário.
  2. Configure os campos do formulário
    Adicione os seguintes campos obrigatórios:
    • Nome do computador (tipo: resposta curta)
      → O valor retornado no VBA com Environ("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.
  3. 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.
  4. 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.
  5. 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:

  1. Abra seu formulário no Google Forms
  2. No canto superior direito, clique nos três pontinhos (⋮) ao lado do ícone de enviar.
  3. Clique na opção “Obter link pré-preenchido” Isso abrirá uma versão especial do formulário, permitindo que você preencha os campos manualmente.
  4. Preencha os campos que deseja deixar já preenchidos
    Exemplo:
    • Nome do computador: MARCOSPC
    • Licença: ABC123
    • Data de vencimento: 30/06/2025
  5. Após preencher os campos, clique no botão “Obter link” no final da página.
  6. 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

  1. Abra a planilha do Google Sheets onde estão os dados finais.
  2. Clique em Arquivo > Publicar na Web.
  3. Selecione a aba correta que contém os dados que o Excel deve ler.
  4. No tipo de arquivo, selecione Valores separados por vírgula (.csv).
  5. Clique em Publicar.
  6. 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 A1 da aba Licenca.
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.1835656199 devem 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:

Baixe a planilha

Avalie este post

Conheça nosso

Curso de Excel completo