Propósito

✔ Programação GLOBAL® - Quaisquer soluções e/ou desenvolvimento de aplicações pessoais, ou da empresa, que não constem neste Blog devem ser tratados como consultoria freelance. Queiram contatar-nos: brazilsalesforceeffectiveness@gmail.com | ESTE BLOG NÃO SE RESPONSABILIZA POR QUAISQUER DANOS PROVENIENTES DO USO DOS CÓDIGOS AQUI POSTADOS EM APLICAÇÕES PESSOAIS OU DE TERCEIROS.

Mostrando postagens com marcador Formatação. Mostrar todas as postagens
Mostrando postagens com marcador Formatação. Mostrar todas as postagens

Dê um Turbo ao Eliminar Caracteres Invisíveis Vindos de IAs em Suas Planilhas

Dê um Turbo ao Eliminar Caracteres Invisíveis Vindos de IAs em Suas Planilhas
#ProgramaçãoGlobal #Unicode #CaracteresInvisíveis #ASCII #VBA #Automação #Excel #IA #Unicode #Formatação

Pronto para levar suas planilhas Excel ao próximo nível? Se você já importou textos gerados por inteligência artificial – cheios de emojis, quebras esquisitas ou caracteres fantasmas que quebram fórmulas – sabe o pesadelo que é limpar tudo isso. Mas segure-se, porque criamos um código VBA revolucionário que varre esses caracteres invisíveis Unicode do seu Excel sem tocar nos dados ou na formatação! Estamos falando de automação de elite, projetada para transformar sua produtividade. Vamos mergulhar nessa inovação e mostrar como ela vai mudar sua vida!

Esses caracteres invisíveis, como U+200B (Zero Width Space) ou U+FEFF (BOM), são resquícios de textos gerados por IAs, herdados de dados da web ou formatação complexa. Eles não aparecem, mas causam caos: erros em fórmulas, falhas em imports ou problemas de compatibilidade. Nosso código VBA para Excel identifica e elimina esses intrusos – de marcadores bidirecionais a espaços ideográficos – com precisão de laser. E o mais incrível? Ele mantém intactas suas formatações, bordas, cores e dados, garantindo uma planilha limpa e funcional.

'===================================================================================== ' Nome do Módulo: RemoveInvisibleUnicodeExcel ' Propósito: Remove caracteres invisíveis Unicode comuns em textos gerados por IA em planilhas do Microsoft Excel, ' Autor: André Bernardes ' Data: 07/03/2025 - 06:23 ' Requisitos: Microsoft Excel com suporte a VBA; planilha ativa com dados. ' Funcionalidades: ' - Identifica e remove caracteres invisíveis Unicode (espaços, controles, direcionais, etc.). ' - Preserva formatação (fontes, cores, bordas, etc.) e dados da planilha. ' - Processa todas as células usadas na planilha ativa. ' - Gera relatório detalhado com caracteres removidos. ' - Interface com barra de progresso para planilhas grandes. ' - Suporte a desfazer alterações (Undo). '===================================================================================== Option Explicit ' Declaração de constantes para caracteres invisíveis comuns em textos gerados por IA Private Const INVISIBLE_CHARS As String = _ vbNullChar & ChrW(&H9) & ChrW(&HA) & ChrW(&HD) & ChrW(&HA0) & _ ChrW(&H2000) & ChrW(&H2001) & ChrW(&H2002) & ChrW(&H2003) & _ ChrW(&H2004) & ChrW(&H2005) & ChrW(&H2006) & ChrW(&H2007) & _ ChrW(&H2008) & ChrW(&H2009) & ChrW(&H200A) & ChrW(&H200B) & _ ChrW(&H200C) & ChrW(&H200D) & ChrW(&H200E) & ChrW(&H200F) & _ ChrW(&H202F) & ChrW(&H205F) & ChrW(&H2060) & ChrW(&H2061) & _ ChrW(&H2062) & ChrW(&H2063) & ChrW(&H2064) & ChrW(&H3000) & _ ChrW(&HFEFF) & ChrW(&H202A) & ChrW(&H202B) & ChrW(&H202C) & _ ChrW(&H202D) & ChrW(&H202E) & ChrW(&H2066) & ChrW(&H2067) & _ ChrW(&H2068) & ChrW(&H2069) & ChrW(&HAD) & ChrW(&H115F) & _ ChrW(&H1160) & ChrW(&H3164) '===================================================================================== ' Sub: RemoveInvisibleUnicodeChars ' Propósito: Executa a remoção de caracteres invisíveis em todas as células usadas da planilha ativa. ' Parâmetros: Nenhum ' Retorno: Nenhum (modifica a planilha e exibe relatório) '===================================================================================== Sub RemoveInvisibleUnicodeChars() On Error GoTo ErrorHandler Dim ws As Worksheet Dim cell As Range Dim char As String Dim charCount As Object Dim totalCharsRemoved As Long Dim totalCells As Long Dim processedCells As Long Dim progress As Double Dim undoRecord As UndoRecord Dim frmProgress As UserForm ' Inicializa dicionário para contar caracteres removidos Set charCount = CreateObject("Scripting.Dictionary") totalCharsRemoved = 0 processedCells = 0 ' Configura a planilha ativa Set ws = ActiveSheet totalCells = ws.UsedRange.Cells.Count ' Inicia gravação de desfazer Set undoRecord = Application.UndoRecord undoRecord.StartCustomRecord "Remove Invisible Unicode Chars" ' Desativa atualizações de tela para desempenho Application.ScreenUpdating = False Application.Calculation = xlCalculationManual ' Cria e exibe barra de progresso Set frmProgress = New UserForm With frmProgress .Caption = "Removendo Caracteres Invisíveis..." .Width = 300 .Height = 100 .Show vbModeless End With ' Itera por todas as células usadas For Each cell In ws.UsedRange If Not IsEmpty(cell) And VarType(cell.Value) = vbString Then Dim cellText As String cellText = cell.Value Dim newText As String newText = cellText ' Verifica cada caractere na célula For Each char In INVISIBLE_CHARS If InStr(newText, char) > 0 Then ' Incrementa contador If charCount.Exists(char) Then charCount(char) = charCount(char) + InStr(newText, char) Else charCount.Add char, InStr(newText, char) End If totalCharsRemoved = totalCharsRemoved + InStr(newText, char) ' Remove o caractere newText = Replace(newText, char, "") End If Next char ' Atualiza a célula apenas se houve alterações If newText <> cellText Then cell.Value = newText End If End If ' Atualiza barra de progresso processedCells = processedCells + 1 progress = processedCells / totalCells frmProgress.Caption = "Progresso: " & Format(progress, "0%") DoEvents Next cell ' Restaura configurações Application.ScreenUpdating = True Application.Calculation = xlCalculationAutomatic ' Fecha barra de progresso Unload frmProgress ' Gera relatório Dim report As String report = "Remoção de Caracteres Invisíveis Concluída!" & vbCrLf & _ "Total de caracteres removidos: " & totalCharsRemoved & vbCrLf & vbCrLf & _ "Detalhes:" & vbCrLf For Each char In charCount report = report & "Caractere Unicode U+" & Hex(AscW(char)) & _ " (" & charCount(char) & " ocorrências)" & vbCrLf Next char ' Exibe relatório MsgBox report, vbInformation, "Relatório de Remoção" ' Finaliza gravação de desfazer undoRecord.EndCustomRecord Exit Sub ErrorHandler: ' Restaura configurações em caso de erro Application.ScreenUpdating = True Application.Calculation = xlCalculationAutomatic ' Fecha barra de progresso If Not frmProgress Is Nothing Then Unload frmProgress ' Cancela gravação de desfazer If Not undoRecord Is Nothing Then undoRecord.EndCustomRecord MsgBox "Erro durante a execução: " & Err.Description, vbCritical, "Erro" End Sub '===================================================================================== ' Sub: AddMacroToRibbon ' Propósito: Adiciona um botão à faixa de opções do Excel para executar a macro. ' Parâmetros: Nenhum ' Retorno: Nenhum '===================================================================================== Sub AddMacroToRibbon() Dim xml As String xml = "<mso:customUI xmlns:mso='http://schemas.microsoft.com/office/2009/07/customui'>" & _ "<mso:ribbon>" & _ "<mso:tabs>" & _ "<mso:tab id='customTab' label='Automação'>" & _ "<mso:group id='customGroup' label='Limpeza de Dados'>" & _ "<mso:button id='btnRemoveInvisible' label='Remover Caracteres Invisíveis' " & _ "size='large' onAction='RemoveInvisibleUnicodeChars' " & _ "imageMso='CleanData' screentip='Remove caracteres Unicode invisíveis da planilha'/>" & _ "</mso:group>" & _ "</mso:tab>" & _ "</mso:tabs>" & _ "</mso:ribbon>" & _ "</mso:customUI>" ' Aplica personalização à faixa de opções ThisWorkbook.CustomXMLParts.Add xml End Sub '===================================================================================== ' Notas de Implementação: ' - A constante INVISIBLE_CHARS inclui todos os caracteres invisíveis listados como comuns em textos gerados por IA. ' - A iteração por células usadas otimiza o desempenho em planilhas grandes. ' - A barra de progresso é implementada via UserForm para melhorar a experiência do usuário. ' - O relatório detalhado auxilia na auditoria de alterações. ' - O suporte a desfazer (Undo) permite reverter mudanças. ' - A integração com a faixa de opções facilita o acesso à macro. ' - Desativação de atualizações de tela e cálculo automático melhora a performance. '=====================================================================================


A experiência é puro poder: um botão na faixa de opções do Excel aciona a macro, e uma barra de progresso te guia enquanto o código processa planilhas gigantes em segundos. Ele ainda gera um relatório detalhado, mostrando quantos caracteres foram removidos (ex.: “15 U+200C eliminados”). Perfeito para analistas de dados, contadores ou qualquer um que lida com textos de IA em planilhas, especialmente em contextos multilíngues onde caracteres como U+202E (RTL Override) podem virar uma dor de cabeça. E, claro, você pode desfazer tudo com um clique, para testar sem medo!

Por que isso é um divisor de águas? Porque esse VBA economiza horas de limpeza manual, reduz erros e eleva a qualidade dos seus dados. Imagine importar relatórios gerados por IA, limpar tudo em um piscar de olhos e ainda manter suas formatações impecáveis. É ideal para empresas que usam IAs em fluxos de dados, freelancers que processam grandes volumes ou até cientistas de dados lidando com datasets multilíngues. E se você curte personalização, pode facilmente expandir a lista de caracteres a remover – o céu é o limite!

Compreendendo os Caracteres Invisíveis:

Junte-se à revolução da automação no Excel! Esse código VBA não é só uma ferramenta – é um superpoder para quem quer planilhas impecáveis sem esforço. Baixe, implemente e sinta a diferença nos seus projetos. Para os fãs de VBA, prepare-se para se apaixonar: essa solução combina performance, usabilidade e inovação, mostrando o potencial da programação no Office. Vamos limpar o futuro dos dados gerados por IA, um caractere invisível de cada vez!


👉 Siga André Bernardes no Linkedin. Clique aqui e contate-me via What's App.

Comente e compartilhe este artigo!

brazilsalesforceeffectiveness@gmail.com

Revolucione Sua Edição de Textos com VBA: Elimine Caracteres Invisíveis de IAs no Word!

Revolucione Sua Edição de Textos com VBA: Elimine Caracteres Invisíveis de IAs no Word!
#ProgramaçãoGlobal #Unicode #CaracteresInvisíveis #ASCII #VBA #Automação #Word #IA #Unicode #Formatação

Prepare-se para transformar sua experiência com o Microsoft Word! Se você já lidou com textos gerados por Inteligência Artificial – daqueles cheios de emojis, quebras estranhas ou caracteres fantasmas que bagunçam tudo – sabe o quanto pode ser frustrante. Mas e se eu te dissesse que criamos uma solução VBA tão poderosa que varre esses caracteres invisíveis sem tocar na formatação do seu documento? Sim, estamos falando de automação de nível ninja para limpar textos de IA, e ela está ao seu alcance! Vamos mergulhar nessa revolução da edição de texto e mostrar como esse código vai mudar seu jogo.

Primeiro, o que são esses caracteres invisíveis? São códigos Unicode (como U+200B ou U+FEFF) que IAs como Grok ou ChatGPT podem inserir acidentalmente, herdados de dados da web ou formatação complexa. Eles não aparecem, mas causam estragos: quebras de linha indesejadas, erros em parsers ou até falhas de compatibilidade.

Nosso código VBA, projetado para o Word, identifica e remove esses intrusos – de espaços de largura zero a marcadores bidirecionais – com precisão cirúrgica. E o melhor? Ele preserva fontes, estilos e parágrafos, garantindo que seu texto fique intacto, mas mais limpo que nunca.

'===================================================================================== ' Nome do Módulo: RemoveInvisibleUnicode ' Propósito: Remove caracteres invisíveis Unicode comuns em textos gerados por IA no Microsoft Word, ' preservando o conteúdo e a formatação do documento. ' Autor: André Bernardes ' Data: 07/03/2025 - 06:23 ' Requisitos: Microsoft Word com suporte a VBA; documento aberto. ' Funcionalidades: ' - Identifica e remove caracteres invisíveis Unicode (espaços, controles, direcionais, etc.). ' - Preserva formatação (estilos, fontes, parágrafos). ' - Gera relatório detalhado com caracteres removidos. ' - Interface com barra de progresso para documentos grandes. ' - Suporte a desfazer alterações (Undo). '===================================================================================== Option Explicit ' Declaração de constantes para caracteres invisíveis comuns em textos gerados por IA Private Const INVISIBLE_CHARS As String = _ vbNullChar & ChrW(&H9) & ChrW(&HA) & ChrW(&HD) & ChrW(&HA0) & _ ChrW(&H2000) & ChrW(&H2001) & ChrW(&H2002) & ChrW(&H2003) & _ ChrW(&H2004) & ChrW(&H2005) & ChrW(&H2006) & ChrW(&H2007) & _ ChrW(&H2008) & ChrW(&H2009) & ChrW(&H200A) & ChrW(&H200B) & _ ChrW(&H200C) & ChrW(&H200D) & ChrW(&H200E) & ChrW(&H200F) & _ ChrW(&H202F) & ChrW(&H205F) & ChrW(&H2060) & ChrW(&H2061) & _ ChrW(&H2062) & ChrW(&H2063) & ChrW(&H2064) & ChrW(&H3000) & _ ChrW(&HFEFF) & ChrW(&H202A) & ChrW(&H202B) & ChrW(&H202C) & _ ChrW(&H202D) & ChrW(&H202E) & ChrW(&H2066) & ChrW(&H2067) & _ ChrW(&H2068) & ChrW(&H2069) & ChrW(&HAD) & ChrW(&H115F) & _ ChrW(&H1160) & ChrW(&H3164) '===================================================================================== ' Sub: RemoveInvisibleUnicodeChars ' Propósito: Executa a remoção de caracteres invisíveis no documento ativo. ' Parâmetros: Nenhum ' Retorno: Nenhum (modifica o documento e exibe relatório) '===================================================================================== Sub RemoveInvisibleUnicodeChars() On Error GoTo ErrorHandler Dim doc As Document Dim rng As Range Dim char As String Dim charCount As Object Dim totalCharsRemoved As Long Dim progress As Double Dim i As Long Dim undoRecord As UndoRecord Dim frmProgress As UserForm ' Inicializa dicionário para contar caracteres removidos Set charCount = CreateObject("Scripting.Dictionary") totalCharsRemoved = 0 ' Configura o documento ativo Set doc = ActiveDocument Set rng = doc.Content ' Inicia gravação de desfazer Set undoRecord = Application.UndoRecord undoRecord.StartCustomRecord "Remove Invisible Unicode Chars" ' Cria e exibe barra de progresso Set frmProgress = New UserForm With frmProgress .Caption = "Removendo Caracteres Invisíveis..." .Width = 300 .Height = 100 .Show vbModeless End With ' Itera por todos os caracteres do documento With rng.Find .ClearFormatting .Text = "[^1-^z]" ' Busca qualquer caractere não visível .MatchWildcards = True .Execute Do While .Found char = rng.Text ' Verifica se o caractere está na lista de invisíveis If InStr(INVISIBLE_CHARS, char) > 0 Then ' Incrementa contador If charCount.Exists(char) Then charCount(char) = charCount(char) + 1 Else charCount.Add char, 1 End If totalCharsRemoved = totalCharsRemoved + 1 ' Remove o caractere rng.Delete End If .Execute ' Atualiza barra de progresso progress = rng.End / doc.Content.End frmProgress.Caption = "Progresso: " & Format(progress, "0%") DoEvents Loop End With ' Fecha barra de progresso Unload frmProgress ' Gera relatório Dim report As String report = "Remoção de Caracteres Invisíveis Concluída!" & vbCrLf & _ "Total de caracteres removidos: " & totalCharsRemoved & vbCrLf & vbCrLf & _ "Detalhes:" & vbCrLf For Each char In charCount report = report & "Caractere Unicode U+" & Hex(AscW(char)) & _ " (" & charCount(char) & " ocorrências)" & vbCrLf Next char ' Exibe relatório MsgBox report, vbInformation, "Relatório de Remoção" ' Finaliza gravação de desfazer undoRecord.EndCustomRecord Exit Sub ErrorHandler: ' Fecha barra de progresso em caso de erro If Not frmProgress Is Nothing Then Unload frmProgress ' Cancela gravação de desfazer If Not undoRecord Is Nothing Then undoRecord.EndCustomRecord MsgBox "Erro durante a execução: " & Err.Description, vbCritical, "Erro" End Sub '===================================================================================== ' Sub: AddMacroToRibbon ' Propósito: Adiciona um botão à faixa de opções do Word para executar a macro. ' Parâmetros: Nenhum ' Retorno: Nenhum '===================================================================================== Sub AddMacroToRibbon() Dim xml As String xml = "<mso:customUI xmlns:mso='http://schemas.microsoft.com/office/2009/07/customui'>" & _ "<mso:ribbon>" & _ "<mso:tabs>" & _ "<mso:tab id='customTab' label='Automação'>" & _ "<mso:group id='customGroup' label='Limpeza de Texto'>" & _ "<mso:button id='btnRemoveInvisible' label='Remover Caracteres Invisíveis' " & _ "size='large' onAction='RemoveInvisibleUnicodeChars' " & _ "imageMso='CleanData' screentip='Remove caracteres Unicode invisíveis do documento'/>" & _ "</mso:group>" & _ "</mso:tab>" & _ "</mso:tabs>" & _ "</mso:ribbon>" & _ "</mso:customUI>" ' Aplica personalização à faixa de opções ActiveDocument.CustomXMLParts.Add xml End Sub '===================================================================================== ' Notas de Implementação: ' - A constante INVISIBLE_CHARS inclui todos os caracteres invisíveis listados como comuns em textos gerados por IA. ' - A busca usa expressões regulares para otimizar a identificação de caracteres não visíveis. ' - A barra de progresso é implementada via UserForm para melhorar a experiência em documentos grandes. ' - O relatório detalhado ajuda na auditoria de alterações. ' - O suporte a desfazer (Undo) garante que o usuário possa reverter mudanças. ' - A integração com a faixa de opções facilita o acesso à macro. '=====================================================================================

A mágica acontece com uma interface amigável: um botão na faixa de opções do Word que aciona a macro, e uma barra de progresso te mantém informado enquanto o código varre documentos enormes. Ele até gera um relatório detalhado, listando quantos caracteres invisíveis foram eliminados e quais eram (ex.: “20 U+200C removidos”). Isso é perfeito para editores, redatores e programadores que lidam com textos gerados por IA, especialmente em ambientes multilíngues onde caracteres como U+202E (RTL Override) podem bagunçar tudo. E, claro, há suporte a desfazer, para você testar sem medo.

Por que isso é disruptivo? Porque automação VBA como essa economiza horas de trabalho manual, reduz erros e eleva a qualidade do texto. Imagine processar relatórios, artigos ou ebooks gerados por IA em segundos, sem se preocupar com formatação corrompida. É ideal para empresas que integram IAs em fluxos de trabalho, freelancers que editam conteúdo em massa ou até acadêmicos lidando com textos técnicos. Além disso, o código é aberto para personalização: quer adicionar mais caracteres à lista de remoção? É só editar a constante INVISIBLE_CHARS e pronto!

Compreendendo os Caracteres Invisíveis:

Junte-se à revolução da automação no Word! Esse código VBA não é só uma ferramenta – é uma mudança de paradigma para quem quer textos limpos e profissionais sem dor de cabeça.

Baixe, implemente e veja a diferença em seus projetos. E se você é um entusiasta de VBA, prepare-se para se inspirar: essa solução combina eficiência, usabilidade e potência, mostrando o que a programação no Office pode fazer.

Vamos limpar o futuro dos textos gerados por IA, um caractere invisível de cada vez!


👉 Siga André Bernardes no Linkedin. Clique aqui e contate-me via What's App.

Comente e compartilhe este artigo!

brazilsalesforceeffectiveness@gmail.com

diHITT - Notícias