Есть некий шаблон документа Word.
Каким образом определить, что в этом шаблоне-документе есть рисунок с именем "ПодписьГотов" и если есть, то очистить этот элемент с рисунком и заполнить его нужной картинкой?
[вложение удалено администратором]
В макросе посмотрите один комментарий.
Sub Макрос()
Dim objContControl As ContentControl
For Each objContControl In ActiveDocument.ContentControls
If objContControl.Title = "ПодписьГотов" Then
objContControl.Range.Delete
' В параметре "FileName" укажите полное имя (путь + имя) файла-рисунка.
ActiveDocument.InlineShapes.AddPicture FileName:="C:\Users\User\Desktop\Chrysanthemum.jpg", _
LinkToFile:=False, SaveWithDocument:=True, Range:=objContControl.Range
Exit For
End If
Next objContControl
End Sub
Спасибо большое! Теперь нужно как то это все сделать через синтаксис 1с.
Я сталкивался на форумах, что VBA в 1C работает в некоторых случаях не так, как VBA в офисе, поэтому на этом форуме вам не помогут с адаптацией к 1C, это вам нужно идти на форумы по 1С.
Все чудесно работает! Я смог подружить 1с и VBA Вашим скриптом.
Подскажите пожалуйста - как возможно задать размеры объекта/картинки - Height и Width?
Или быть может можно сделать так, чтобы картинка вставала по размерам элемента управления? У элемента управления при вставке сбрасывается параметр "сохранить пропорции".
Как его выставлять обратно в истину?
[вложение удалено администратором]
Пункт 1Цитата:
Или быть может можно сделать так, чтобы картинка вставала по размерам элемента управления? У элемента управления при вставке сбрасывается параметр "сохранить пропорции".
У этого элемента управления нет параметра "сохранить пропорции", это вы смотрите свойства чего-то другого, предположу, рисунка.
Пункт 2Макрос
Sub Макрос()
Dim objContControl As ContentControl, inlineshp As InlineShape
For Each objContControl In ActiveDocument.ContentControls
If objContControl.Title = "ПодписьГотов" Then
'1. Очистка элемента управления.
objContControl.Range.Delete
'2. Вставка рисунка и vba-именование рисунка. Рисунку присвоится vba-имя "inlineshp"
' и с помощью этого имени можно управлять рисунком.
' В параметре "FileName" укажите полное имя (путь + имя) файла-рисунка.
Set inlineshp = ActiveDocument.InlineShapes.AddPicture(FileName:="C:\Users\User\Desktop\Chrysanthemum.jpg", _
LinkToFile:=False, SaveWithDocument:=True, Range:=objContControl.Range)
'3. Чтобы сохранялись пропорции рисунка.
inlineshp.LockAspectRatio = True
'4. Изменение размеров рисунка. Если используется "LockAspectRatio" (это команда выше),
' то тогда нужно задавать какой-то один размер (это логично).
' Устанавливается размер 5 см.
inlineshp.Height = Application.CentimetersToPoints(5)
inlineshp.Width = Application.CentimetersToPoints(5)
'5. Выход из цикла, т.к. надо было найти только один элемент управления.
Exit For
End If
Next objContControl
End Sub
Все работает! Спасибо огромное за поддержку.