У меня есть длинный документ MS Word 2007 года, в котором я иногда должен заменять все встроенные графики.
Изменения являются достаточно простыми и достаточно регулярными, что я мог, вероятно, записать макрос VBA для создания этих обновлений для меня.
Но, я вошел в очень простую проблему: Я не могу выяснить, как даже выбрать встроенный график в VBA. Функция "Record Macro" в Word не записывает изменения в графике по некоторым причинам и весь учебный адрес онлайн, взаимодействующий с графиками в Excel.
Кто-то мог отправить некоторый короткий пример кода (или ссылка, объясняющая), который показывает некоторое основное взаимодействие со встроенными графиками в Word?
Взгляните на это сообщение в Блоге MSDN: Модель Объекта диаграммы Office в PowerPoint и Word
Это требует SP2 для Office 2007.
Это должно работать на оба встроенных изображения (jpg, и т.д.) или встроенные диаграммы:
'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
Существует также объект "Формы" (и набор Форм), который относится ко всем формам более в общем - встроены ли они или нет. Форма может быть многими вещами - используют свойство Type для возврата типа встроенной формы: изображение, связанное изображение, встроило Объект OLE, связанный Объект OLE, элементы управления ActiveX и т.д. Если Вы имеете много различных типов и должны отличить их, можно окружить Ваш удалять с чем-то как:
If shp.Type = wdInlineShapeEmbeddedOLEObject Then
shp.Delete
End If
Один способ добавить новое изображение:
' Insert a picture at the current insertion point.
Sub InsertPicture(ByVal FileName As String)
Selection.InlineShapes.AddPicture _
FileName:=FileName, _
SaveWithDocument:=True
End Sub