Ao inserir uma imagem em um documento do Word, o programa gera automaticamente um texto alternativo com base nos metadados do arquivo ou na análise de conteúdo. Esse texto gerado automaticamente costuma ser genérico ou impreciso, e nunca inclui o nome original do arquivo da imagem. Você deseja que o Word leia o nome do arquivo da imagem e o use como texto alternativo padrão. Este artigo explica como configurar o Word para preencher automaticamente o campo de texto alternativo com o nome do arquivo de cada imagem inserida usando uma macro VBA simples. Você aprenderá a adicionar a macro, executá-la e ajustar o comportamento para documentos futuros.
Principais conclusões: Configurar o Word para ler o nome do arquivo da imagem como texto alternativo
- Macro VBA no Normal.dotm: Uma macro que percorre todas as imagens de um documento e define o texto alternativo como o nome do arquivo de origem da imagem.
- Evento AutoOpen ou Document_Open: Execute a macro automaticamente sempre que abrir um documento, garantindo que novas imagens recebam o nome do arquivo como texto alternativo.
- Arquivo > Opções > Central de Confiabilidade > Configurações de Macro: Habilite todas as macros ou assine digitalmente a macro para evitar avisos de segurança a cada execução.
Como o Word gera o texto alternativo padrão para imagens
O Word usa um serviço online chamado Office Intelligent Services para analisar o conteúdo de uma imagem inserida e gerar um texto alternativo descritivo. Esse recurso está habilitado por padrão no Word para Microsoft 365. O serviço tenta identificar objetos, pessoas, texto e cenas dentro da imagem. Para muitas imagens, o texto alternativo resultante é vago, como “Uma imagem contendo texto, captura de tela” ou “Um close-up de uma pessoa”. O nome original do arquivo da imagem nunca é incluído nessa descrição gerada automaticamente.
O nome do arquivo geralmente contém informações significativas que o usuário atribuiu intencionalmente, como “2024-Relatorio-Anual-Capa.png” ou “Produto-Foto-Verso.jpg”. Usar o nome do arquivo como texto alternativo fornece aos usuários de leitores de tela um contexto imediato sobre o propósito da imagem, sem precisar interpretar uma descrição genérica. O Word não oferece uma configuração interna para alterar a fonte do texto alternativo padrão do serviço inteligente para o nome do arquivo. Você deve usar uma macro VBA para interceptar o evento de inserção ou processar imagens existentes.
Pré-requisitos para a solução com macro
Antes de começar, verifique se as seguintes condições são atendidas. Você precisa de uma cópia do Word para Microsoft 365 ou Word 2019 ou posterior no Windows. A macro será armazenada no modelo Normal.dotm para que se aplique a todos os documentos. Você deve definir a segurança de macro para permitir macros assinadas ou habilitar todas as macros temporariamente. Se sua organização bloquear macros, entre em contato com o departamento de TI. A macro funciona apenas com imagens que possuem um caminho de arquivo de origem. Imagens copiadas da área de transferência ou coladas como captura de tela não têm um nome de arquivo e são ignoradas.
Passos para adicionar a macro VBA que define o texto alternativo a partir do nome do arquivo
- Abra o editor do Visual Basic for Applications
Pressione Alt+F11 no Word. A janela do editor VBA é aberta. No painel esquerdo, localize Project (Normal). Expanda-o e clique duas vezes em ThisDocument em Microsoft Word Objects. - Cole o código da macro na janela de código
Copie o seguinte código VBA e cole na área em branco da janela de código. Esta macro percorre todas as formas inline e formas no documento. Para cada imagem, extrai o nome do arquivo de origem da propriedade LinkFormat.SourceFullName e o escreve na propriedade AlternativeText.Sub SetAltTextFromFilename()
Dim pic As InlineShape
Dim shp As Shape
Dim fileName As String
Dim altText As StringFor Each pic In ActiveDocument.InlineShapes
If pic.Type = wdInlineShapePicture Then
If pic.LinkFormat Is Nothing Then
' Imagem incorporada, não vinculada — ignorar
Else
fileName = pic.LinkFormat.SourceFullName
altText = Mid(fileName, InStrRev(fileName, "\") + 1)
pic.AlternativeText = altText
End If
End If
Next picFor Each shp In ActiveDocument.Shapes
If shp.Type = msoPicture Then
If shp.LinkFormat Is Nothing Then
' Imagem incorporada, não vinculada — ignorar
Else
fileName = shp.LinkFormat.SourceFullName
altText = Mid(fileName, InStrRev(fileName, "\") + 1)
shp.AlternativeText = altText
End If
End If
Next shp
End Sub - Feche o editor VBA e salve o modelo
Pressione Ctrl+S para salvar o modelo Normal.dotm. Feche a janela do editor VBA. O Word solicitará confirmação para salvar as alterações no Normal.dotm. Clique em Salvar. - Execute a macro pela primeira vez
Abra um documento que contenha imagens com nomes de arquivo. Pressione Alt+F8 para abrir a caixa de diálogo Macros. Selecione SetAltTextFromFilename na lista e clique em Executar. O Word processa cada imagem e define o texto alternativo como o nome do arquivo. Verifique o texto alternativo clicando com o botão direito em uma imagem e escolhendo Exibir Texto Alternativo. - Atribua a macro a um botão ou atalho de teclado para acesso rápido
Vá para Arquivo > Opções > Barra de Ferramentas de Acesso Rápido. No menu suspenso Escolher comandos de, selecione Macros. Selecione SetAltTextFromFilename e clique em Adicionar. Clique em Modificar, escolha um ícone de botão e renomeie para algo como “Texto Alt do Nome”. Clique em OK duas vezes. Agora você pode executar a macro com um clique na Barra de Ferramentas de Acesso Rápido.
Fazendo a macro ser executada automaticamente ao abrir o documento
Para aplicar o texto alternativo do nome do arquivo a cada nova imagem inserida, você pode anexar a macro ao evento Document_Open. No editor VBA, na janela de código do ThisDocument, cole o seguinte código acima da macro existente:
Private Sub Document_Open()
Call SetAltTextFromFilename
End Sub
Salve o modelo. Agora, toda vez que você abrir qualquer documento, a macro será executada e atualizará o texto alternativo de todas as imagens. Observe que isso também é executado em documentos que não contêm imagens, o que é inofensivo, mas adiciona um pequeno atraso.
Limitações e cuidados ao usar o nome do arquivo como texto alternativo
Imagens coladas da área de transferência ou captura de tela
Imagens coladas diretamente da área de transferência ou inseridas como captura de tela não possuem um caminho de arquivo de origem. A propriedade LinkFormat.SourceFullName está vazia para essas imagens. A macro as ignora, deixando o texto alternativo inalterado. Para definir o texto alternativo dessas imagens, você deve digitar manualmente uma descrição no painel de Texto Alternativo.
Imagens incorporadas sem vínculo
Ao inserir uma imagem usando Inserir > Imagens > Este Dispositivo, o Word incorpora o arquivo de imagem ao documento. A macro verifica a existência de um objeto LinkFormat. Se a imagem estiver incorporada, LinkFormat é definido como Nothing, e a macro ignora a imagem. Esta é uma limitação conhecida do modelo de objeto VBA. Para contornar isso, insira imagens como arquivos vinculados: use Inserir > Imagens > Vincular ao Arquivo em vez de incorporar. Imagens vinculadas mantêm o caminho do arquivo de origem.
Avisos de segurança de macro
O Word pode exibir uma barra de aviso de segurança informando que as macros foram desabilitadas. Clique em Habilitar Conteúdo para permitir a execução da macro. Para evitar esse aviso, você pode assinar digitalmente a macro usando um certificado autoassinado ou adicionar o local do documento à lista de Locais Confiáveis em Arquivo > Opções > Central de Confiabilidade > Configurações da Central de Confiabilidade > Locais Confiáveis.
O texto alternativo substitui descrições existentes
A macro substitui qualquer texto alternativo existente pelo nome do arquivo. Se você já escreveu um texto alternativo significativo para algumas imagens, a macro o substituirá. Execute a macro apenas em documentos onde você deseja que o nome do arquivo seja o texto alternativo. Alternativamente, modifique a macro para verificar se o texto alternativo está vazio antes de escrever o nome do arquivo.
| Item | Imagem Incorporada | Imagem Vinculada |
|---|---|---|
| Caminho do arquivo de origem mantido | Não | Sim |
| Macro define texto alternativo a partir do nome do arquivo | Não (ignorada) | Sim |
| Tamanho do arquivo no documento | Grande (imagem incorporada) | Pequeno (apenas caminho) |
| Imagem é perdida se o arquivo de origem for excluído ou renomeado | Não | Sim (link quebrado) |
Agora você pode configurar o Word para definir automaticamente o texto alternativo das imagens inseridas para o nome original do arquivo usando uma macro VBA. Teste a macro em um documento de amostra primeiro. Para uma solução mais refinada, modifique a macro para remover a extensão do arquivo ou adicionar um prefixo. Armazene a macro no Normal.dotm para que esteja disponível em todos os documentos que você criar.