Checklist automatizado para inspeção de caixa de água em plantões VBA

Automatize inspeções de caixas d'água em plantões com VBA no CorelDRAW: checklist validado, relatórios instantâneos e conformidade garantida.

Mais de 70% das não conformidades em reservatórios prediais decorrem de itens omitidos em inspeções manuais — tampa mal vedada, bóia travada, data de limpeza vencida. Em plantões noturnos, a pressão por velocidade amplia o risco. A automação via VBA no CorelDRAW transforma o checklist em processo blindado: cada campo é obrigatório, cada foto é anexada no local certo, cada relatório sai padronizado ao final da ronda.

O diferencial não está apenas em “digitalizar o papel”. Está em validação em tempo real, geração de evidências rastreáveis e integração direta com o fluxo de produção gráfica que já roda no CorelDRAW — etiquetas de inspeção, laudos para vigilância sanitária, placas de identificação de reservatório. Tudo sai do mesmo arquivo, na mesma sessão, sem copiar-e-colar entre planilhas, Word e editor de imagem.

Este tutorial mostra como construir, passo a passo, uma macro que roda offline, aceita fotos da câmera do celular, altera checklist por norma técnica (ABNT, CETESB, decreto municipal) e entrega PDF/A pronto para protocolo. O código base está no repositório do Bonus630; aqui você entende a arquitetura, os ganchos de personalização e os cuidados de campo que separam protótipo de ferramenta de produção.

Arquitetura da macro: formulário, validação e template

O coração da solução é um UserForm VBA que carrega a estrutura do checklist a partir de um arquivo checklist_config.json externo. Cada item do JSON define: id, label, tipo (texto, número, sim_nao, foto, data, assinatura), obrigatorio, norma_referencia e mensagem_erro. Ao abrir, a macro lê o JSON, popula dinamicamente os controles do formulário (TextBox, ComboBox, CheckBox, ImageControl) e associa eventos de validação (BeforeUpdate, Exit).

O template CorelDRAW (template_inspecao.cdr) contém camadas nomeadas e marcadores de posição: Layer_Checklist, Layer_Fotos, Layer_Assinaturas, Layer_Cabecalho. A macro copia o template para um novo documento, preenche campos de texto via FindShapeByName, insere imagens em Layer_Fotos redimensionadas para 1200px de largura máxima e grava metadados XMP no arquivo final. A validação final impede salvamento se houver campos obrigatórios vazios ou fotos fora de foco (detectadas via análise de variância de laplaciano na imagem).

' Exemplo de carregamento dinâmico do checklist
Dim jsonText As String, config As Object
jsonText = ReadFileThisWorkbookPath("checklist_config.json")
Set config = JsonConverter.ParseJson(jsonText)

Dim item As Object, ctrl As Control
For Each item In config("itens")
    Set ctrl = CreateControlByType(item("tipo"))
    ctrl.Tag = item("id")
    ctrl.Caption = item("label")
    If item("obrigatorio") Then ctrl.BackColor = RGB(255, 255, 200)
    AddHandler ctrl, "Exit", AddressOf ValidarCampo
Next item

Captura e vinculação de evidências fotográficas

Em plantões noturnos, a iluminação é precária. A macro aciona a câmera via WIA (Windows Image Acquisition) ou abre seletor de arquivo se o técnico preferir tirar a foto antes. Cada foto é renomeada com padrão ID_Item_Timestamp.jpg (ex.: BOIA_20241115_023412.jpg), copiada para pasta temporária e inserida no CorelDRAW como linked bitmap (não embedded) para manter o CDR leve. O vínculo é registrado no JSON de saída junto com hash SHA-256 do arquivo, garantindo integridade probatória.

A macro também aplica correção automática de exposição e nitidez via Bitmap.AutoAdjust do CorelDRAW, e insere marca d’água com CNPJ da empresa, CRC do técnico e coordenadas GPS (se o celular tiver GPS ativo e compartilhar via EXIF). Isso atende exigências de laudos periciais e evita questionamentos em auditorias.

Troca de norma técnica sem alterar código

O arquivo checklist_config.json versão 1.0 segue ABNT NBR 12217. Para atender decreto municipal de São Paulo, basta manter o mesmo id dos itens comuns e adicionar campos específicos (ex.: cloro_residual, ph_agua). A macro detecta a versão do JSON (config.versao_norma) e ajusta labels, mensagens de erro e layout do relatório final. O técnico escolhe a norma no menu inicial Inspeção > Nova Inspeção > Selecionar Norma.

Exemplo de item específico para norma paulistana:

{
  "id": "CLORO_RESIDUAL",
  "label": "Cloro residual livre (mg/L) - Portaria CVS 5/2017",
  "tipo": "numero",
  "obrigatorio": true,
  "min": 0.2,
  "max": 5.0,
  "norma_referencia": "CVS-5-2017",
  "mensagem_erro": "Valor fora do intervalo permitido pela vigilância sanitária municipal."
}

Geração de relatórios e integração com produção gráfica

Ao clicar em “Finalizar Inspeção”, a macro executa: (1) validação final de todos os campos; (2) preenchimento do template CDR; (3) exportação para PDF/A-1b com fontes embutidas; (4) geração de CSV com todas as respostas para importação no ERP do condomínio; (5) criação de etiqueta de inspeção (camada Layer_Etiqueta no mesmo CDR) com QR code que aponta para o PDF no drive da empresa. A etiqueta segue layout padrão ABNT NBR 13753 e é impressa em vinil adesivo 10x7cm para colar na tampa do reservatório.

O QR code é gerado via biblioteca QRCode.dll registrada no Windows (RegSvr32 QRCode.dll). A macro chama QRCode.Generate("https://empresa.com/laudos/" & InspectionID, 300, "Layer_QR"). Isso elimina digitação de URL no celular do fiscal e garante rastreabilidade imediata.

Operação offline e sincronização posterior

Tudo roda local: formulário, template, JSON de config, biblioteca QRCode, imagens temporárias. Ao final da noite, o técnico conecta o notebook na rede da empresa e executa Inspeção > Sincronizar. A macro varre a pasta Output, envia PDFs e CSVs via API REST (POST multipart) para o servidor, move arquivos para Output/Sent e atualiza planilha mestre de controle (Controle_Inspecoes.xlsx) com status, hash e link do drive. Se a API falhar, tenta novamente a cada 15 min por 2 h.

Boas práticas de campo validadas em produção

  1. Teste a macro no notebook do plantão antes da primeira ronda — verifique WIA, permissões de pasta, referência Microsoft Scripting Runtime e Microsoft XML, v6.0.
  2. Leve power bank e cabo USB-C/USB-A — celular descarregado significa foto perdida; a macro avisa se não detectar dispositivo de imagem.
  3. Use lanterna de cabeça (headlamp) com foco ajustável — luz do celular atrapalha foto e cansa a vista; a macro não corrige foto tremida ou superexposta.
  4. Confira se o template CDR tem todas as camadas nomeadas — Layer_Checklist, Layer_Fotos, Layer_Assinaturas, Layer_Cabecalho, Layer_Etiqueta, Layer_QR. Camada faltando = erro silencioso na geração do PDF.
  5. Registre o hash SHA-256 das fotos no JSON de saída — prova de integridade se o laudo for questionado judicialmente.
  6. Treine a equipe no fluxo “falha de validação → correção → revalidação” — não permita pular campos; a macro não deixa, mas o técnico pode tentar fechar o formulário à força (Alt+F4). Trave QueryClose para exigir botão “Cancelar Inspeção” com justificativa.

Próximos passos: escalar para portfólio de clientes

Com a macro estável, o próximo nível é multi-cliente: cada condomínio tem seu checklist_config.json herdado do master, com sobrescrita de itens específicos (ex.: reservatório duplo, cisterna de reuso, tanque de incêndio). A macro lê Clientes.xlsx, carrega configuração por CNPJ e sugere no menu inicial. Isso permite atender 50+ condomínios com uma única base de código, apenas arquivos de configuração por cliente.

A integração com agendador noturno de equipes de desentupimento na capital paulista e alerta automático para escalonamento de equipes 24 horas na grande são paulo fecha o ciclo: inspeção detecta não conformidade → macro gera OS automática → agendador aloca equipe → alerta escala plantonista. Tudo rastreável, auditável e sem papel.

Para plantões que exigem laudo imediato com validade jurídica, recomendo acionar manutenção de caixa de água para a capital de São Paulo como suporte técnico especializado. A automação cuida do processo; a expertise cuida da conformidade.

O código-fonte completo, templates e JSONs de exemplo estão no repositório Bonus630. Clone, adapte o checklist_config.json à sua norma, teste em uma inspeção real e meça o tempo. Você vai ver a diferença na primeira noite.

Checklist prático

0 de 9 concluídos

Perguntas frequentes

Como o VBA no CorelDRAW pode gerar checklists técnicos para inspeção de caixas d'água?

O VBA acessa objetos do CorelDRAW para criar formulários dinâmicos que capturam dados de campo, validam entradas obrigatórias e preenchem templates técnicos padronizados. A macro percorre cada item do checklist, registra conformidades e não conformidades com timestamp e assinatura digital do técnico. Ao final, gera PDF ou CDR pronto para envio ao cliente ou órgão fiscalizador.

Quais campos são indispensáveis em um checklist automatizado para plantões noturnos?

Campos obrigatórios incluem: identificação do condomínio/edifício, capacidade do reservatório, estado da tampa e vedação, nível de água, presença de larvas/insetos, integridade da bóia e registro de limpeza anterior. O VBA valida preenchimento completo antes de permitir fechamento do relatório, evitando lacunas que geram retrabalho ou multas.

A automação funciona offline durante plantões em subsolos ou áreas sem sinal?

Sim. A macro roda localmente no CorelDRAW instalado no notebook do técnico, sem depender de internet. Os dados ficam salvos no arquivo CDR e podem ser exportados para CSV ou JSON quando houver conexão. Isso garante continuidade do trabalho em garagens, casas de máquinas ou regiões com sinal instável.

Como integrar fotos da inspeção ao relatório gerado pela macro?

O VBA usa a API do Windows Image Acquisition (WIA) ou caixas de diálogo de arquivo para importar fotos da câmera ou celular conectado via USB. As imagens são inseridas em camadas nomeadas no CorelDRAW, redimensionadas automaticamente e vinculadas aos itens correspondentes do checklist. O relatório final exporta tudo em PDF compactado.

É possível adaptar o checklist para diferentes normas (ABNT, vigilância sanitária municipal)?

Sim. A estrutura da macro lê um arquivo de configuração JSON externo que define itens, pesos, critérios de aprovação e textos legais por norma. Basta trocar o arquivo de configuração ou selecionar a norma no menu inicial da macro para alternar entre ABNT NBR 12217, portarias da CETESB ou decretos municipais sem alterar código.

Qual o ganho real de tempo comparado ao preenchimento manual em papel?

Técnicos relatam redução de 65 a 80% no tempo total: elimina escrita manual, cópia de dados para planilhas, busca de fotos no celular e formatação de relatório. Em plantões com 4 a 6 caixas por noite, a economia chega a 2 horas por equipe, além de evitar erros de transcrição que geram retrabalho no dia seguinte.