Veja este post no Blog do MSDN: Modelo de objeto de gráfico do Office no PowerPoint e no Word
Requer o SP2 para o Office 2007.
Eu tenho um longo documento do MS Word 2007, no qual eu ocasionalmente preciso substituir todos os gráficos incorporados.
As alterações são simples e regulares o suficiente para que eu possa escrever uma macro VBA para fazer essas atualizações para mim.
Mas, entrei em um problema muito básico: não consigo descobrir como selecionar um gráfico incorporado no VBA. O recurso "Gravar Macro" no Word não registra alterações no gráfico por algum motivo e todos os tutoriais on-line abordam a interação com gráficos no Excel.
Alguém poderia postar algum código de exemplo curto (ou um link explicando) que mostre alguma interação básica com gráficos incorporados no Word?
Veja este post no Blog do MSDN: Modelo de objeto de gráfico do Office no PowerPoint e no Word
Requer o SP2 para o Office 2007.
Isso deve funcionar tanto para imagens incorporadas (jpg, etc) quanto para gráficos incorporados:
'Kill 'em all: pictures, OLE object, hyperlinks, ActiveX controls, etc.
Sub DeleteAllShapes()
Dim shp As InlineShape
For Each shp In ActiveDocument.InlineShapes
shp.Delete
Next shp
End Sub
Existe também um objeto "Shape" (e uma coleção Shapes) que se refere a todas as formas de forma mais genérica - sejam elas inline ou não. Uma forma pode ser muitas coisas - use a propriedade Type para retornar o tipo de forma inline: imagem, imagem vinculada, objeto OLE incorporado, objeto OLE vinculado, controles ActiveX e muito mais. Se você tiver muitos tipos diferentes e precisar distingui-los, poderá cercar sua exclusão com algo como:
If shp.Type = wdInlineShapeEmbeddedOLEObject Then
shp.Delete
End If
Uma maneira de adicionar uma nova imagem:
' Insert a picture at the current insertion point.
Sub InsertPicture(ByVal FileName As String)
Selection.InlineShapes.AddPicture _
FileName:=FileName, _
SaveWithDocument:=True
End Sub