Ao inserir imagens diretamente em um documento do Word, o tamanho do arquivo cresce rapidamente, dificultando o compartilhamento ou a colaboração. Imagens incorporadas armazenam os dados completos da imagem dentro do arquivo .docx, enquanto imagens vinculadas referenciam um arquivo externo e mantêm o documento leve. Este artigo explica como converter cada imagem incorporada em uma imagem vinculada usando uma macro VBA, economizando espaço em disco e melhorando o desempenho do documento. Você aprenderá o código exato para executar, os pré-requisitos e o que fazer se a vinculação falhar.
Principais conclusões: converter imagens incorporadas em imagens vinculadas via VBA
- Macro VBA no Word: Automatiza o processo de substituir cada imagem incorporada por uma versão vinculada usando o mesmo caminho do arquivo de imagem.
- Arquivo > Opções > Central de Confiabilidade > Configurações da Central de Confiabilidade > Habilitar todas as macros: Necessário para executar a macro VBA sem avisos de segurança.
- Método InlineShapes.AddPicture com LinkToFile:=True: Cria uma imagem vinculada que é atualizada quando o arquivo de origem é alterado.
Como imagens incorporadas e vinculadas funcionam no Word
Ao inserir uma imagem através de Inserir > Imagens > Este Dispositivo, o Word incorpora os dados completos da imagem no documento. O tamanho do documento aumenta aproximadamente pelo tamanho de cada imagem. Isso torna o envio por e-mail ou upload mais lento, e editar a imagem original posteriormente não atualiza a cópia no Word.
Já uma imagem vinculada armazena apenas o caminho do arquivo de origem da imagem. O documento permanece pequeno e, se você modificar o arquivo de imagem de origem, o Word pode atualizar a imagem vinculada automaticamente (desde que o link seja mantido). A desvantagem é que o arquivo de imagem deve permanecer no mesmo local; se você movê-lo, o link é quebrado.
O Word não oferece um comando nativo para converter em lote imagens incorporadas em vinculadas. Você deve usar uma macro VBA para substituir cada forma incorporada por uma versão vinculada. A macro lê o caminho do arquivo de imagem original da imagem incorporada (se disponível), exclui a forma incorporada e insere uma nova imagem vinculada na mesma posição.
Pré-requisitos para executar a macro
Antes de executar a macro de conversão, verifique o seguinte:
- Todas as imagens incorporadas foram originalmente inseridas de arquivos em seu computador ou unidade de rede. Imagens copiadas da web ou coladas da área de transferência não possuem um caminho de arquivo de origem e não podem ser vinculadas.
- Os arquivos de imagem originais ainda existem em seus caminhos originais. Se você os moveu ou excluiu, a macro falhará para essas imagens.
- Você tem permissão para executar macros no Word. Vá em Arquivo > Opções > Central de Confiabilidade > Configurações da Central de Confiabilidade > Configurações de Macro e selecione Habilitar todas as macros. Reverta essa configuração após terminar.
Passo a passo da macro para converter imagens incorporadas em vinculadas
Siga estas etapas para criar e executar a macro VBA. A macro processa todos os InlineShapes (imagens ancoradas ao texto) e Shapes (imagens flutuantes) no documento ativo.
- Abra o editor VBA
Pressione Alt+F11 no Word. A janela Microsoft Visual Basic for Applications é aberta. - Insira um novo módulo
No painel Project Explorer, clique com o botão direito em Normal ou no projeto do documento atual, escolha Inserir e depois Módulo. Uma janela de código em branco aparece. - Cole o código da macro
Copie o código a seguir e cole na janela do módulo:
Sub ConvertEmbeddedToLinked()
Dim shp As InlineShape
Dim shp2 As Shape
Dim imgPath As String
Dim imgWidth As Single
Dim imgHeight As Single
Dim rng As Range
Application.ScreenUpdating = False
' Processa InlineShapes (imagens na linha com texto)
For Each shp In ActiveDocument.InlineShapes
If shp.Type = wdInlineShapePicture Then
On Error Resume Next
imgPath = shp.LinkFormat.SourcePath & "\" & shp.LinkFormat.SourceName
If Err.Number <> 0 Then
' Sem informações de link; pula se incorporada sem origem
Err.Clear
GoTo NextInline
End If
On Error GoTo 0
imgWidth = shp.Width
imgHeight = shp.Height
Set rng = shp.Range
shp.Delete
Set shp = rng.InlineShapes.AddPicture( _
FileName:=imgPath, _
LinkToFile:=True, _
SaveWithDocument:=False, _
Range:=rng)
shp.Width = imgWidth
shp.Height = imgHeight
End If
NextInline:
Next shp
' Processa Shapes flutuantes
For Each shp2 In ActiveDocument.Shapes
If shp2.Type = msoPicture Then
On Error Resume Next
imgPath = shp2.LinkFormat.SourcePath & "\" & shp2.LinkFormat.SourceName
If Err.Number <> 0 Then
Err.Clear
GoTo NextShape
End If
On Error GoTo 0
imgWidth = shp2.Width
imgHeight = shp2.Height
Set rng = shp2.Anchor
shp2.Delete
Set shp2 = ActiveDocument.Shapes.AddPicture( _
FileName:=imgPath, _
LinkToFile:=True, _
SaveWithDocument:=False, _
Anchor:=rng)
shp2.Width = imgWidth
shp2.Height = imgHeight
End If
NextShape:
Next shp2
Application.ScreenUpdating = True
MsgBox "Conversão concluída.", vbInformation
End Sub
- Execute a macro
Pressione F5 para executar a macro, ou vá em Executar > Executar Sub/UserForm. O Word processa cada imagem e a substitui por uma versão vinculada. Uma caixa de mensagem confirma a conclusão. - Salve o documento
Pressione Ctrl+S para salvar o documento. O Word agora armazena apenas os caminhos das imagens, não os dados das imagens. O tamanho do arquivo deve ser significativamente menor.
Se a macro pular algumas imagens ou retornar erros
A macro pode pular imagens ou produzir erros em cenários específicos. Abaixo estão os problemas mais comuns e como resolvê-los.
Algumas imagens não foram convertidas
Imagens coladas da área de transferência, copiadas de uma página web ou inseridas via arrastar e soltar de um e-mail não possuem um caminho de arquivo de origem. A macro não consegue determinar onde o arquivo original reside. Para converter essas, você deve reinserir manualmente cada imagem usando Inserir > Imagens > Este Dispositivo e então executar a macro novamente.
Erro: Run-time error 5174 — Arquivo não encontrado
Este erro significa que o arquivo de imagem original não existe mais no caminho armazenado. Restaure o arquivo para seu local original ou atualize o caminho na macro. Você pode verificar o caminho de uma imagem específica clicando com o botão direito nela, selecionando Formatar Imagem e olhando na guia Texto Alternativo (alguns metadados podem mostrar o caminho).
Imagens vinculadas mostram um X vermelho ou ícone de imagem quebrada
Se você mover ou renomear os arquivos de imagem de origem após a conversão, o Word não consegue exibir a imagem vinculada. Para corrigir, vá em Arquivo > Informações > Editar Links para Arquivos, selecione o link quebrado e clique em Alterar Origem para apontar para o novo local do arquivo.
Comparação: Imagens incorporadas vs vinculadas no Word
| Item | Imagem Incorporada | Imagem Vinculada |
|---|---|---|
| Tamanho do arquivo do documento | Grande (inclui dados completos da imagem) | Pequeno (armazena apenas o caminho do arquivo) |
| Exigência de origem da imagem | Nenhuma (imagem é autocontida) | Arquivo original deve permanecer acessível |
| Atualização quando a origem muda | Reinserção manual necessária | Automática via Editar Links para Arquivos |
| Portabilidade | Funciona em qualquer lugar sem arquivos extras | Quebrada se os arquivos de origem forem movidos |
| Método de conversão em lote | Macro VBA (este artigo) | Macro VBA (este artigo) |
Agora você pode converter todas as imagens incorporadas em imagens vinculadas em uma única execução de macro, reduzindo o tamanho do documento e permitindo atualizações automáticas de imagem. Após a conversão, considere usar Arquivo > Informações > Editar Links para Arquivos para verificar se todos os links são válidos. Para controle avançado, modifique a macro para pular imagens abaixo de um determinado tamanho ou registrar imagens ignoradas em um documento separado.