Word - Extrair imagem 'alt text - description'

1

Eu tenho um documento do Word com mais de 500 imagens incorporadas.

Para cada imagem no documento, quero obter a 'Descrição' da seção 'Texto alternativo' da imagem (quando você clica com o botão direito do mouse em uma imagem > propriedades > texto alternativo, você pode ver isso)

Eu, então, quero colocar esse texto alt abaixo da imagem como texto normal.

Existe uma maneira de fazer isso com uma macro vb na palavra?

Estou usando o Microsoft Word 2010 no Windows 7.

    
por zio 25.05.2014 / 18:06

2 respostas

3

Macro do Word VBA para inserir texto alternativo abaixo das imagens

Sub InsertAltTextBelowImages()

    For i = ActiveDocument.Shapes.Count To 1 Step -1
        If ActiveDocument.Shapes(i).Type = msoPicture Then
            ActiveDocument.Shapes(i).ConvertToInlineShape
        End If
    Next i

    For Each img In ActiveDocument.InlineShapes
        If img.Type = wdInlineShapePicture Then
            img.Range.InsertAfter (vbCrLf & img.AlternativeText & vbCrLf)
        End If
    Next

End Sub

Dois problemas

  1. O Word conhece dois tipos de imagens: imagens embutidas e imagens flutuantes. As imagens flutuantes não têm uma propriedade intervalo , portanto, o Word não sabe a qual parágrafo a imagem realmente pertence. Você pode converter ( ConvertToInlineShape ) imagens flutuantes em imagens inline normais. Mas isso vai atrapalhar seu layout

  2. Você não pode simplesmente inserir o texto "abaixo" como você disse. E se não houver linha abaixo da imagem? Você precisa inserir pelo menos duas quebras de página ( vbCrLf ) junto com o texto alternativo. Isso estraga o layout do Word novamente

Veja minhas capturas de tela de comparação sobre como minha macro afeta o layout

Antes

Depoisde

    
por 25.05.2014 / 19:27
1

Uma macro vb pode fazer tudo que um usuário pode fazer, mas seria uma tarefa enorme conseguir isso programado.

Sugiro exportar seu documento do Word para um documento html. Depois, você pode editá-lo com um editor de texto, como o notepad ++, e usar ações de busca / substituição inteligentes com regex para alterar cada imagem de uma vez para o que você deseja. Em seguida, você pode salvá-lo novamente e carregar o documento html em Word para convertê-lo de volta em um documento do Word.

Aposto que isso fará com que você faça o trabalho 10 vezes mais rápido do que escrever uma macro que fará isso.

    
por 25.05.2014 / 18:12