Crie checklists visuais de hidrojateamento para a Zona Norte com macros VBA e ganhe agilidade
Automatize checklists de hidrojateamento no CorelDRAW com VBA. Modelos visuais padronizados para equipes da Zona Norte reduzem erros e aceleram a entrega.
Como transformar uma pilha de papéis rabiscados em um checklist visual padronizado, rastreável e pronto para auditoria — tudo sem sair do CorelDRAW? Equipes de hidrojateamento na Zona Norte perdem horas preenchendo formulários manuais, corrigindo erros de digitação e refazendo croquis que não seguem o padrão da fiscalização. A automação com VBA resolve isso de ponta a ponta: o operador abre o modelo, preenche caixas de diálogo guiadas e gera PDF assinado em segundos.
O segredo está em separar o que muda (dados da ordem de serviço) do que não muda (layout, logos, campos obrigatórios, numeração). Neste tutorial você vai montar o template, gravar a macro base, parametrizar os campos, adicionar exportação em lote e publicar a solução para a equipe toda — sem instalar nada em cada estação de trabalho.
Estrutura do template: camadas, nomes e bloqueios
Abra um novo documento no CorelDRAW (A4, paisagem). Crie três camadas: Fundo (logotipo, grade, textos fixos), Campos (caixas de texto que receberão dados) e Assinaturas (linhas para responsável, fiscal, data). Trave a camada Fundo. Em cada caixa de texto da camada Campos, clique com botão direito > Nome do objeto e defina nomes sem espaços: OS_Numero, Data_Execucao, Pressao_Bar, Bico_Tipo, Metragem_M, Operador_Nome, Fiscal_Nome. Essa nomeação permite que o VBA encontre o objeto direto: ActiveLayer.Shapes("OS_Numero").Text.Story.Text = valor.
Dica de produção: use fontes instaladas em todas as máquinas (Arial, Calibri) e converta textos fixos em curvas na camada Fundo para evitar substituição de fonte. Salve como Checklist_Hidrojateamento_ZN.cdr na pasta compartilhada da rede.
Gravando a macro base com o gravador nativo
Vá em Ferramentas > Macros > Gravar macro. Nomeie PreencheChecklistZN e escolha armazenar em GlobalMacros (GlobalMacroStorage.gms) — assim fica disponível em qualquer documento. Execute estes passos gravados:
- Arquivo > Abrir > selecione o template da rede.
- Edite cada caixa de texto da camada Campos digitando um valor de exemplo.
- Arquivo > Publicar como PDF > pasta de saída \servidor\Checklists_PDF\ > nome
OS_12345_Checklist.pdf. - Pare a gravação.
Abra o editor (Alt+F11), módulo Module1. Você verá código verboso com Selection, ActiveDocument. Substitua por referências diretas aos nomes de objeto. Exemplo limpo:
Sub PreencheChecklistZN()
Dim doc As Document
Set doc = OpenDocument("\\servidor\Templates\Checklist_Hidrojateamento_ZN.cdr")
Dim shp As Shape
Set shp = doc.ActiveLayer.Shapes("OS_Numero")
shp.Text.Story.Text = InputBox("Número da OS:", "Checklist Zona Norte")
Set shp = doc.ActiveLayer.Shapes("Data_Execucao")
shp.Text.Story.Text = Format(Date, "dd/mm/yyyy")
Set shp = doc.ActiveLayer.Shapes("Pressao_Bar")
shp.Text.Story.Text = InputBox("Pressão de trabalho (bar):", "Checklist Zona Norte")
Set shp = doc.ActiveLayer.Shapes("Bico_Tipo")
shp.Text.Story.Text = InputBox("Tipo de bico (rotativo, fixo, etc.):", "Checklist Zona Norte")
Set shp = doc.ActiveLayer.Shapes("Metragem_M")
shp.Text.Story.Text = InputBox("Metragem da rede (m):", "Checklist Zona Norte")
Set shp = doc.ActiveLayer.Shapes("Operador_Nome")
shp.Text.Story.Text = Environ("USERNAME")
doc.PublishToPDF "\\servidor\Checklists_PDF\" & doc.Shapes("OS_Numero").Text.Story.Text & "_Checklist.pdf", cdrPDFRangeCurrentPage, False, False
doc.Close cdrDoNotSaveChanges
End Sub
Caixas de diálogo profissional: UserForm com validação
InputBoxes param no meio da tela e não validam. Crie um UserForm (frmChecklistZN) com: ComboBox para Bico_Tipo (Rotativo, Fixo, Cadeia, Penetrante), TextBox numérico para Pressao_Bar (máscara ####), DatePicker para Data_Execucao, TextBox para Metragem_M e OS_Numero. Adicione botão Gerar PDF com código:
Private Sub btnGerar_Click()
If Not IsNumeric(txtPressao.Value) Then MsgBox "Pressão deve ser numérica.": Exit Sub
If Trim(txtOS.Value) = "" Then MsgBox "Informe o nº da OS.": Exit Sub
Dim doc As Document
Set doc = OpenDocument("\\servidor\Templates\Checklist_Hidrojateamento_ZN.cdr")
doc.ActiveLayer.Shapes("OS_Numero").Text.Story.Text = txtOS.Value
doc.ActiveLayer.Shapes("Data_Execucao").Text.Story.Text = Format(dtpData.Value, "dd/mm/yyyy")
doc.ActiveLayer.Shapes("Pressao_Bar").Text.Story.Text = txtPressao.Value
doc.ActiveLayer.Shapes("Bico_Tipo").Text.Story.Text = cboBico.Value
doc.ActiveLayer.Shapes("Metragem_M").Text.Story.Text = txtMetragem.Value
doc.ActiveLayer.Shapes("Operador_Nome").Text.Story.Text = Environ("USERNAME")
Dim pdfPath As String
pdfPath = "\\servidor\Checklists_PDF\" & txtOS.Value & "_Checklist_" & Format(Now, "yyyymmdd_hhnn") & ".pdf"
doc.PublishToPDF pdfPath, cdrPDFRangeCurrentPage, False, False
Call GravaLogPlanilha(txtOS.Value, cboBico.Value, txtPressao.Value, txtMetragem.Value, Environ("USERNAME"), pdfPath)
doc.Close cdrDoNotSaveChanges
Unload Me
MsgBox "Checklist gerado: " & pdfPath
End Sub
Chame o formulário no módulo padrão: Sub IniciaChecklist(): frmChecklistZN.Show: End Sub. Adicione botão na barra de ferramentas apontando para IniciaChecklist.
Rastreabilidade: gravando em planilha mestra via ADO
Crie Checklists_Log.xlsx na rede com colunas: OS, Data, Bico, Pressao, Metragem, Operador, PDF_Path, Status. No mesmo módulo do UserForm, adicione:
Sub GravaLogPlanilha(OS As String, Bico As String, Pressao As String, Metragem As String, Operador As String, PDFPath As String)
Dim cn As Object, rs As Object, sql As String
Set cn = CreateObject("ADODB.Connection")
cn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=\\servidor\Logs\Checklists_Log.xlsx;Extended Properties='Excel 12.0 Xml;HDR=YES;'"
sql = "INSERT INTO [Plan1$] (OS, Data, Bico, Pressao, Metragem, Operador, PDF_Path, Status) VALUES ('" & OS & "', '" & Format(Now, "dd/mm/yyyy hh:nn") & "', '" & Bico & "', '" & Pressao & "', '" & Metragem & "', '" & Operador & "', '" & PDFPath & "', 'Gerado')"
cn.Execute sql
cn.Close
End Sub
Agora cada checklist gerado deixa rastro auditável. Gestores filtram por data, operador ou status no Excel ou Power BI.
Publicação e distribuição sem dor de cabeça
No Gerenciador de Macros (Ferramentas > Macros > Gerenciador de Macros), selecione GlobalMacros, clique em Exportar e salve ChecklistZN.gms. Na máquina do colega: Gerenciador > Importar > selecione o GMS. Pronto — a macro aparece em Macros do usuário.
Para ir além, crie uma extensão (.ccx) com barra de ferramentas customizada, ícone e tooltip. O artigo Como publicar suas macros no gerenciador de extensões mostra o empacotamento completo com ExtensionInfo.xml e assinatura digital.
Boas práticas de performance também valem aqui: desative Application.Optimization = True durante a geração, use Application.EventsEnabled = False para evitar redraws e feche o template sem salvar. Veja detalhes em Boas práticas de desempenho em macros para produção.
Se a equipe roda CorelDRAW em MacBook via Parallels, o mesmo GMS funciona — apenas valide caminhos de rede (SMB) mapeados. Confira Automação VBA no CorelDRAW em MacBook corporativo via Parallels para ajustes de path e fontes.
Equipes da Zona Norte que atendem emergências noturnas ganham agilidade imediata: o operador abre o CorelDRAW, clica no botão “Checklist ZN”, preenche o formulário e entrega o PDF assinado antes de sair do cliente. Para suporte de campo 24h, conte com desentupidora 24 horas na Zona Norte como referência de atendimento na região.
Padronize o template uma vez, automatize o preenchimento e elimine retrabalho. O próximo passo é estender o mesmo modelo para laudos fotométricos, croquis de rede e etiquetas de equipamento — tudo no mesmo ecossistema VBA do CorelDRAW.
Checklist prático
Perguntas frequentes
Preciso saber programar para criar essas macros no CorelDRAW?
Não. O VBA do CorelDRAW possui gravador de macros que captura ações manuais. Você grava a criação de um checklist padrão, depois edita o código para adicionar laços, variáveis e caixas de diálogo. O artigo mostra o caminho completo do zero ao script funcional.
Como garantir que o checklist visual atenda às normas da Zona Norte?
Inclua campos obrigatórios baseados nas exigências locais: pressão de trabalho, tipo de bico, metragem da rede, responsáveis e assinaturas. Use camadas bloqueadas no CorelDRAW para impedir alterações acidentais no layout aprovado pela fiscalização.
A macro funciona em versões antigas do CorelDRAW (X7, X8)?
Sim. O modelo de objetos VBA mantém compatibilidade ampla. Evite métodos introduzidos nas versões 2020+ e teste em máquina virtual com a versão alvo. O artigo cita propriedades seguras como ActiveLayer, CreateText e Shape.Range.
Como distribuir a macro para a equipe sem instalar em cada computador?
Exporte o GMS (GlobalMacroStorage) e importe via Ferramentas > Macros > Gerenciador de Macros. Outra opção é criar uma barra de ferramentas personalizada com botões que chamam os módulos. O post linkado sobre publicação no gerenciador de extensões detalha o processo.
Posso integrar o checklist a um banco de dados ou planilha?
Sim. O VBA acessa ADO/ODBC para SQL Server, Access ou Excel. No exemplo do artigo, gravamos os dados preenchidos em uma planilha mestra na rede, com data, operador e status. Isso vira base para relatórios gerenciais automáticos.
E se o layout do checklist mudar no mês que vem?
Separe o layout (template .cdr) do código. A macro abre o template, preenche os campos via nome de objeto (NamedObjects) e salva como PDF ou novo CDR. Alterações visuais ficam no template, sem tocar no código.