Макрос нужен

  • Автор темы Автор темы izrukvruki
  • Дата начала Дата начала
Можно.
Код:
Sub Picture_del()
Dim oInlineShape As InlineShape
Dim i As Integer

i = 1
Selection.HomeKey Unit:=wdStory
For Each oInlineShape In ActiveDocument.InlineShapes
oInlineShape.Select
Selection.Delete Unit:=wdCharacter, Count:=1
Selection.TypeText Text:="img" & i
i = i + 1
Next
End Sub
формулы макрос тоже посчитал картинками...
 
Ну формулы можно предварительно заменить на соответствующие метки MathType'ом (<<eqp000.wmf>>), все равно их потом вставлять... Картинки в статье и из PDF экспортируются в одинаковой последовательности, попробовал на двух статьях...
 
  • Спасибо
Реакции: LeonidB
Тема немного старая, но нашел немного другой макрос, расстановки меток вместо картинок.

Этот скрипт удаляет еще и диаграммы, и смарт-объекты, которые он тоже считает картинками.
Можно.
Код:
Sub Picture_del()
Dim oInlineShape As InlineShape
Dim i As Integer

i = 1
Selection.HomeKey Unit:=wdStory
For Each oInlineShape In ActiveDocument.InlineShapes
oInlineShape.Select
Selection.Delete Unit:=wdCharacter, Count:=1
Selection.TypeText Text:="img" & i
i = i + 1
Next
End Sub

А вот этот скрипт работает только с внедренными картинками:

Код:
Sub del_pick()
  Dim ii, rng, nn
  nn = 0 'число собс-но картинок
  With ActiveDocument.InlineShapes
   For ii = 1 To .Count Step 1  'сначала считаем картинки
      If .Item(ii).Type = 3 Then 'Это картинка
        nn = nn + 1 'Увеличим счетчик картинок
      End If
   Next ii
   If nn > 0 Then ' Если есть что заменять
     For ii = .Count To 1 Step -1 'теперь пойдём от хвоста
       If .Item(ii).Type = 3 Then 'Это картинка?
         Set rng = .Item(ii).Range.Duplicate ' запомним место
         .Item(ii).Delete 'удалим картинку
         rng.Text = "[img]image" & nn & ".tif[/img]" 'Впишем название
         nn = nn - 1 'Уменьшим счётчик картинок
       End If
     Next ii
   End If
  End With
End Sub

Если вордовский файл открыть как архив, то в папке media можно взять растровые картинки, их имена совпадают с нумерацией которая проставляется скриптом выше (замечено, что если в ворде вставить картинку, то последовательность картинок в media пересоздается заново, в порядке появления картинок), переконвертить в tif, с помощью TFManagerCS3 можно вставить их обратно в верстку.

Вариант с открытием ворда как архива предпочтительнее взятия картинок из pdf, потому что в папке media лежат картинки в своем реальном качестве, а из pdf картинки экспортируются с учетом их трансформаций (большая картинка в ворде может быть вставлена крохотным рисунком, а вы в верстке захотите его чуть увеличить, либо маленькая картинка может быть растянута до безобразия - в результате получите размыленную картинку с хорошим разрешением)
 
Но написанное выше, противоречит моим же хотелкам из первого поста, в плане размеров картинок... Но сейчас мне кажется более удобным...