Vba word вставить рисунок за текстом

Sub Макрос()

        Dim shape As shape
    Dim FN As String

            ‘ Полное имя файла-рисунка.
    FN = «C:UsersUserDesktopРисунок.png»

        ‘ Вставка неплавающего рисунка и превращение неплавающего рисунка в плавающий.
        ‘ При этом присваиваем рисунку имя ‘shape’ и далее в коде будем обращаться
        ‘ к рисунку по имени ‘shape’.
    Set shape = Selection.InlineShapes.AddPicture(FileName:=FN, LinkToFile:=False, _
        SaveWithDocument:=True, Range:=Selection.Range).ConvertToShape

        ‘ Здесь можете делать нужные действия с рисункам, используя имя ‘shape’.
        ‘ Например, так можно узнать левое положение рисунка.
        ‘ Информация запишется в View — Immediate Window.
    Debug.Print shape.Left

    End Sub

[свернуть]

Только что появилась такая же проблема. Решил тем, что в шаблоне документ Word устанавливаю закладку там, куда мне нужно вставить изображение: Вставка -> Ссылки -> Закладка. Даю ей имя, к примеру Mark1.

В коде пишу:

C#
1
2
3
...
wordDocument.InlineShapes.AddPicture( path, Type.Missing, Type.Missing, wordDocument.Bookmarks["MARK1"].Range );
...

где path — путь до изображения; wordDocument.Bookmarks["MARK1"] — свойство, которое является закладкой, которую вы установили в шаблоне документа(заранее нужно открыть этот шаблон). И у этого свойства есть объект Range, который указывает на позицию, в данном случае позицию нашей закладки.

Написал это все, так как долго искал в инете информацию по поводу того, как же мне вставить изображение в шаблон документа Word в определенное место. Так и не нашел, то что мне нужно. Пришлось самому допирать

 

Олег Кулиничев

Пользователь

Сообщений: 13
Регистрация: 11.07.2021

#1

28.03.2022 22:19:51

доброго времени суток

на одном из сторонних форумов нашёл код для вставки в создаваемый документ Word картинки формата PNG (код ниже)

при вставке в документ Word картинки с печатью она вставляется в определённое место с типом форматирования «В тексте»

помогите, пожалуйста, решить мою проблему;

1) как сделать после вставки картинки её «За текстом», а не «В тексте»
2) как «привязать» вставку картинки к опреднённому месту в документе (например, к какой-то закладке), т.к. документ Word (например письмо или справка) может быть как на 1 лист, так и на несколько

заранее спасибо

Код
Sub InsertPicture() 

Dim wdTable As Object
Dim objWrdDoc As Object
Dim strFile As String
Dim p As InlineShape, t As Object
Dim pShape As Object

On Error Resume Next

strFile = Range("E8").Value                           'путь к документу (можно "d:...Документ.docx")
Set objWrdApp = GetObject(, "Word.Application")       'пытаемся подключится к объекту Word
If objWrdApp Is Nothing Then
    Set objWrdApp = CreateObject("Word.Application")  'если приложение закрыто - создаем новый экземпляр
    Set objWrdDoc = objWrdApp.Documents.Open(strFile) 'открываем документ Word - документ с таким именем должен существовать
    objWrdApp.Visible = True
End If
Set objWrdDoc = objWrdApp.Documents.Open(strFile)
On Error GoTo 0
    
Set WdRange = objWrdDoc.Content
Set wdTable = WdRange.Tables(1)

Set p = wdTable.Rows(1).Cells(1).Range.InlineShapes.AddPicture(Range("C11").Value, False, True) ' путь к картинке (можно "d:...печать.png")

'вставка в документ
p.ScaleWidth = 20
p.ScaleHeight = 20
Set t = p.ConvertToShape
t.WrapFormat.Type = wdWrapNone

t.RelativeHorizontalPosition = wdRelativeHorizontalPositionPage
t.RelativeVerticalPosition = wdRelativeVerticalPositionPage
t.Left = 260                                                    'значения, конкретно под этот случай
t.Top = 370                                                     'значения, конкретно под этот случай

End Sub

Прикрепленные файлы

  • InsertStamp.xlsm (17.83 КБ)
  • Документ.docx (224.85 КБ)
  • печать.png (225.52 КБ)

 

whateverlover

Пользователь

Сообщений: 435
Регистрация: 15.06.2018

#2

28.03.2022 23:09:34

моя печать  :D

Код
t.WrapFormat.Type = wdWrapNone

Вот это, скорей всего, отвечает за то «в тексте» она будет или «за текстом». Вот

тут

можно посмотреть какие есть варианты, вам, я так понял, подойдет wdWrapBehind.

 

Олег Кулиничев

Пользователь

Сообщений: 13
Регистрация: 11.07.2021

#3

28.03.2022 23:53:19

Цитата
написал:
моя печать   Код ? 1t.WrapFormat.Type = wdWrapNoneВот это, скорей всего, отвечает за то «в тексте» она будет или «за текстом». Вот  тут  можно посмотреть какие есть варианты, вам, я так понял, подойдет wdWrapBehind.

Спасибо!!!
Это побороли. Исправил код и картинка вставилась «за текстом»

А как по поводу места в документе? возможно привязать картинку к «закладке» в Word?

 

Юрий М

Модератор

Сообщений: 60575
Регистрация: 14.09.2012

Контакты см. в профиле

Олег Кулиничев,  Вы с правилами знакомились? Каком максимально допустимый суммарный размер файлов?

 

whateverlover

Пользователь

Сообщений: 435
Регистрация: 15.06.2018

#5

29.03.2022 00:23:10

Цитата
Олег Кулиничев написал:
А как по поводу места в документе? возможно привязать картинку к «закладке» в Word?

Объектную модель Word не знаю, нагуглил вот такое:

Код
ActiveDocument.Bookmarks("TEST").Range.InlineShapes.AddPicture FileName:="P:test.png"

Я так понимаю, эта строчка вставит картинку В закладку «TEST». Попробуйте, может это не то.
Я в своем варианте привязывался к строчке, содержащей фразу «руководитель проекта» и вставлял в ту же строчку, но с определенным отступом вправо.

Изменено: whateverlover29.03.2022 00:26:20

вставить картинку в определённое место

карандаш

Дата: Четверг, 16.04.2015, 08:00 |
Сообщение № 1

Группа: Проверенные

Ранг: Обитатель

Сообщений: 329


Репутация:

8

±

Замечаний:
0% ±


2010

есть макрос, полученный автозаписью
он вставляет две картинки — подпись и печать
[vba]

Код

Sub ВставитьПодписьПечать()
       ActiveDocument.Shapes.AddPicture(Anchor:=Selection.Range, FileName:= _
           «C:UserskpaPicturesподпись.png», LinkToFile:=False, _
           SaveWithDocument:=True).WrapFormat.Type = wdWrapNone
       ActiveDocument.Shapes.AddPicture(Anchor:=Selection.Range, FileName:= _
           «C:UserskpaPicturesпечать.png», LinkToFile:=False, _
           SaveWithDocument:=True).WrapFormat.Type = wdWrapNone
End Sub

[/vba]

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

К сообщению приложен файл:

blank-0.zip
(99.7 Kb)

Сообщение отредактировал карандашЧетверг, 16.04.2015, 08:01

 

Ответить

anvg

Дата: Четверг, 16.04.2015, 08:38 |
Сообщение № 2

Группа: Друзья

Ранг: Ветеран

Сообщений: 581


Репутация:

271

±

Замечаний:
0% ±


2016, 365

И вам здравствуйте
[vba]

Код

Dim p As InlineShape
Set p = ThisDocument.Tables(1).Rows(2).Cells(2).Range.InlineShapes.AddPicture(«d:pathname.png», False, True)

[/vba]
Успехов

Сообщение отредактировал anvgЧетверг, 16.04.2015, 08:39

 

Ответить

карандаш

Дата: Четверг, 16.04.2015, 10:33 |
Сообщение № 3

Группа: Проверенные

Ранг: Обитатель

Сообщений: 329


Репутация:

8

±

Замечаний:
0% ±


2010

anvg, вставка происходит «во внутрь», т.е. ячейка расширяется до размеров картинки. Как задать .WrapFormat.Type = wdWrapNone или как называется свойство «поверх текста» — не знаю. Справка не помогла.

 

Ответить

anvg

Дата: Четверг, 16.04.2015, 11:00 |
Сообщение № 4

Группа: Друзья

Ранг: Ветеран

Сообщений: 581


Репутация:

271

±

Замечаний:
0% ±


2016, 365

Цитата

ячейка расширяется до размеров картинки

Кто мешает уменьшить размер картинки?

Цитата

Справка не помогла.

Вы её не читали, похоже, особенно раздел InlineShape Object Members
[vba]

Код

Public Sub insPic()
     Dim p As InlineShape, t As Shape
     Set p = ThisDocument.Tables(1).Rows(2).Cells(2).Range.InlineShapes.AddPicture(«d:pathname.png», False, True)
     p.ScaleWidth = 20
     p.ScaleHeight = 20
     Set t = p.ConvertToShape
     t.WrapFormat.Type = wdWrapNone
End Sub

[/vba]

 

Ответить

карандаш

Дата: Четверг, 14.05.2015, 14:38 |
Сообщение № 5

Группа: Проверенные

Ранг: Обитатель

Сообщений: 329


Репутация:

8

±

Замечаний:
0% ±


2010

Хотелось бы уточнить

Как можно изменить положение рисунка на странице относительно страницы?
Например, при клике на рисунке правой кнопкой мыши выпадает выпадающее меню. Предпоследняя строка меню — «Размер и положение».
Кликнув на этом элементе меню получаем окошко «Разметка» с тремя табуляторами/закладками.
Первая закладка «Положение». В ней по горизонтали и вертикали выбираем «относительно [страницы]» и ставим числовое значение.
В макрос эти действия не записываются.
А как это можно выставить в самом макросе?

 

Ответить

anvg

Дата: Пятница, 15.05.2015, 09:37 |
Сообщение № 6

Группа: Друзья

Ранг: Ветеран

Сообщений: 581


Репутация:

271

±

Замечаний:
0% ±


2016, 365

карандаш, и вам здравствуйте
Всё так же по справке Word VBA
[vba]

Код

Public Sub insPic()
     Dim pShape As Shape
     Set pShape = ThisDocument.Shapes(1)
     pShape.RelativeHorizontalPosition = wdRelativeHorizontalPositionPage
     pShape.RelativeVerticalPosition = wdRelativeVerticalPositionPage
     pShape.Left = 100
     pShape.Top = 200
End Sub

[/vba]
Успехов.

 

Ответить

карандаш

Дата: Среда, 20.05.2015, 15:09 |
Сообщение № 7

Группа: Проверенные

Ранг: Обитатель

Сообщений: 329


Репутация:

8

±

Замечаний:
0% ±


2010

здравствуйте, да
а вот «всё так же по справке» — это где? можно уточнить?
а то я опять ничего не смог найти. Не там смотрю или не вижу.
Помогите найти, пожалуйста.

 

Ответить

Динозавр

Дата: Понедельник, 05.07.2021, 22:01 |
Сообщение № 8

Группа: Пользователи

Ранг: Прохожий

Сообщений: 1


Репутация:

1

±

Замечаний:
0% ±


Добрый день!
Подскажите, пожалуйста, по такому вопросу. Пытаюсь вставить картинку с печатью в определенное место в файле WORD из EXCEL.
Т.к. с объектной моделью WORD не знаком, то не понимаю, как вставить картинку в конкретное место.

Попытаюсь объяснить в чем трудность, хотя возможно я изначально думаю не в том направлении и WORD так не работает.
Первое, что я делаю это вставляю картинку просто куда получилось. Можно ли ее вставить сразу туда куда надо (между блоками с номером доверенности и фамилией подписанта, макрос, который есть в файле, поставит картинку туда, куда задумывается, если прописать путь к картинке и к файлу).
И второе, я вставил картинку, и следующими параметрами пытаюсь ее поставить на место.
[vba]

Код

t.Left = 260
t.Top = 370

[/vba]
Но, отступ слева всегда будет одинаковым, а вот сверху не всегда (строк в таблице может быть как больше так и меньше). Как сделать этот параметр динамическим?
Общий вопрос: как вставить картинку между блоками «Руководитель проекта» и «Петров И.И.»

Кросс — https://www.cyberforum.ru/vba/thread2856314.html#post15605970
Всем большое спасибо.

Сообщение отредактировал ДинозаврПонедельник, 05.07.2021, 22:20

 

Ответить

Понадобилось мне тут в свое время писать много текста в MS Word, вставляя туда картинки. Понимая, что картинки рано или поздно понадобится переделывать, я пришел к необходимости вставки не картинок, а ссылок на них. Но вставить поле мало — крайне желательно еще и подписывать имя вставленной картинки.

При этом файл doc / docx может перемещаться между компьютерами (да, я пользуюсь и DropBox, и Yandex.Drive, и OneDrive). Соответственно надо вставлять относительные пути и подписывать их же. Не очень продолжительный поиск по сети и немного фантазии дали такой вариант:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73

Option Explicit

Public sInitialPath As String

Private Declare Function PathRelativePathToW _
    Lib «shlwapi.dll» (ByVal pszPath As Long, _
    ByVal pszFrom As Long, ByVal dwAttrFrom As Long, _
    ByVal pszTo As Long, ByVal dwAttrTo As Long) _
    As Boolean

     
Private Function GetRelativePath _
  (ByVal sPathFrom As String, _
   ByVal sPathTo As String) As String
   ‘ Определение относительного адреса
   ‘ каталога или файла
   Dim sRelativePath As String
   sRelativePath = Space(260) ‘ резервируем буфер
   
   If PathRelativePathToW(StrPtr(sRelativePath), _
             StrPtr(sPathFrom), vbDirectory, _
             StrPtr(sPathTo), 0) Then  ‘ определили адрес
             ‘MsgBox sRelativePath
     GetRelativePath = Left(sRelativePath, _
        InStr(sRelativePath, vbNullChar) — 1)
   Else  
     GetRelativePath = «*»
   End If
End Function

Public Sub InsertLinkToPicture()
Dim sFileName As String
Dim oField As Field
    With Application.FileDialog(msoFileDialogOpen)
      .Title = «Укажите рисунок»
      .AllowMultiSelect = False
      .ButtonName = «Select»
      .Filters.Clear
      .Filters.Add «Картинки», «*.jpg; *.tiff; *.tif; *.png»
      If sInitialPath = «» Then sInitialPath = Application.ActiveDocument.Path
      .InitialView = msoFileDialogViewList
      If .Show Then sFileName = .SelectedItems(1) Else Exit Sub
    End With
    If Left(Selection.Text, 1) <> Chr(13) Then
      Selection.TypeText Text:=vbCr
    End If
    sFileName = GetRelativePath(Application.ActiveDocument.FullName, sFileName)
    Select Case True
      Case Left(sFileName, 2) = «..»
        sFileName = Right(sFileName, Len(sFileName) — 2)
      Case Left(sFileName, 1) = «.»
        sFileName = Right(sFileName, Len(sFileName) — 1)
    End Select
    If Left(sFileName, 1) = «/» Or Left(sFileName, 1) = «» Then
      sFileName = Right(sFileName, Len(sFileName) — 1)
    End If
    Set oField = Selection.Fields.Add(Range:=Selection.Range, Type:=wdFieldEmpty, _
      Text:=«INCLUDEPICTURE  « + Chr(34) + _
      Replace(sFileName, «», «/») + _
      Chr(34) + » d « _
      , PreserveFormatting:=True)

     
    If InStr(sFileName, «_35%») Then
      ActiveDocument.Hyperlinks.Add Anchor:=oField.Result, Address:=Replace(sFileName, «_35%», «»), SubAddress:=«»
    End If

   
    Selection.TypeText Text:=vbCrLf + Replace(sFileName, «_35%», «») ‘Right(sFileName, Len(sFileName) — Len(Application.ActiveDocument.Path))
    Selection.HomeKey Unit:=wdLine, Extend:=wdExtend
    Selection.Font.Italic = True
    Selection.Font.Bold = True
    Selection.Font.Color = wdColorRed
    ‘ Selection.Range.HighlightColorIndex = wdGreen
    Selection.EndKey
End Sub

Но, как выяснилось, в MS Office 2013 x64 решение работать не будет (даже если попытаться корректно объявить импорт PathRelativePathToW, VBA отказывается обрабатывать указатели на строки). Поэтому было найдено другое решение:(исходник здесь):

Тогда по Ctrl+Z будет отменяться все целиком, а не по шагам. Нередко рядом с оригинальным файлом я кладу его «уменьшенную» копию (уменьшение выполняется с FastStone Image Viewer, картинка уменьшается до 35%, имя файла оканчивается на «_35%»). Если рядом с оригиналом есть уменьшенный вариант, в поле вставляется «уменьшенная» копия, а подпись идет на нормальный вариант. В результате получилось такое чудо:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119

Option Explicit

Public sInitialPath As String

Public Function GetRelativePath(ByVal sFrom As String, ByVal sTo As String) As String
  GetRelativePath = «»
  Dim sFromTmp As String, sToTmp As String, sTmp As String, bFirst As Boolean
  sFromTmp = «»
  sToTmp = «»
  sTmp = «»
  bFirst = True
  Do While Len(sFrom) > Len(sFromTmp) Or Len(sTo) > Len(sToTmp)
    If Len(sFrom) > Len(sFromTmp) Then
      If Not bFirst Then sFrom = Right(sFrom, Len(sFrom) — Len(sFromTmp) — 1)
        sFromTmp = GetLeftPart(sFrom)
      Else
        sFrom = «»
        sFromTmp = «»
      End If

     
      If Len(sTo) > Len(sToTmp) Then
        If Not bFirst Then sTo = Right(sTo, Len(sTo) — Len(sToTmp) — 1)
          sToTmp = GetLeftPart(sTo)
        Else
          sTo = «»
          sToTmp = «»
        End If

       
        If bFirst And sFromTmp <> sToTmp Then
          Exit Function ‘ Нет общего корня
        Else
          bFirst = False
        End If

       
        If Len(GetRelativePath) > 0 Or sFromTmp <> sToTmp Then
          If Len(sFromTmp) > 0 Then
            If Len(GetRelativePath) > 0 Then
              GetRelativePath = GetRelativePath & «..»
            Else
              GetRelativePath = GetRelativePath & «..»
            End If
          End If
          If Len(sToTmp) > 0 Then
            If Len(sTmp) > 0 Then
              sTmp = sTmp & «» & sToTmp
            Else
              sTmp = sTmp & sToTmp
            End If
          End If
        End If
  Loop
  If Len(sTmp) > 0 Then GetRelativePath = GetRelativePath & «» & sTmp
  If 0 = Len(GetRelativePath) Then GetRelativePath = «.»
End Function

 
Function GetLeftPart(sPath)
Dim i As Integer
  For i = 1 To Len(sPath)
    If «» = Mid(sPath, i, 1) Then
      GetLeftPart = Left(sPath, i — 1)
      Exit Function
    End If
  Next
  GetLeftPart = sPath
End Function

Public Sub InsertLinkToPicture()
Dim sFileName As String
Dim oField As Field
  Application.UndoRecord.StartCustomRecord

 
  With Application.FileDialog(msoFileDialogOpen)
    .Title = «Укажите рисунок»
    .AllowMultiSelect = False
    .ButtonName = «Select»
    .Filters.Clear
    .Filters.Add «Картинки», «*.jpg; *.tiff; *.tif; *.png»
    If sInitialPath = «» Then sInitialPath = Application.ActiveDocument.Path
    .InitialView = msoFileDialogViewList
    If .Show Then sFileName = .SelectedItems(1) Else Exit Sub
  End With

 
  If Left(Selection.Text, 1) <> Chr(13) Then
    Selection.TypeText Text:=vbCr
  End If
  sFileName = GetRelativePath(Application.ActiveDocument.FullName, sFileName)

 
  Select Case True
    Case Left(sFileName, 2) = «..»
      sFileName = Right(sFileName, Len(sFileName) — 2)
    Case Left(sFileName, 1) = «.»
      sFileName = Right(sFileName, Len(sFileName) — 1)
  End Select

 
  If Left(sFileName, 1) = «/» Or Left(sFileName, 1) = «» Then
    sFileName = Right(sFileName, Len(sFileName) — 1)
  End If

 
  Set oField = Selection.Fields.Add(Range:=Selection.Range, Type:=wdFieldEmpty, _
  Text:=«INCLUDEPICTURE  « + Chr(34) + _
        Replace(sFileName, «», «/») + _
        Chr(34) + » d « _
        , PreserveFormatting:=True)

       
  If InStr(sFileName, «_35%») Then
    ActiveDocument.Hyperlinks.Add Anchor:=oField.Result, Address:=Replace(sFileName, «_35%», «»), SubAddress:=«»
  End If

 
  Selection.TypeText Text:=vbCrLf + Replace(sFileName, «_35%», «»)
  Selection.HomeKey Unit:=wdLine, Extend:=wdExtend
  Selection.Font.Italic = True
  Selection.Font.Bold = True
  Selection.Font.Color = wdColorRed
  Selection.EndKey
  Selection.Collapse
  Selection.TypeParagraph
  Selection.Range.Style = ActiveDocument.Styles(wdStyleNormal)
  Application.UndoRecord.EndCustomRecord
End Sub


Форум программистов Vingrad

Модераторы: mihanik

Поиск:

Ответ в темуСоздание новой темы
Создание опроса
> Вставка рисунка в MS Word, с подрисуночной надписью !!! 

:(

   

Опции темы

bAndito
  Дата 9.10.2006, 15:11 (ссылка)
| (нет голосов)
Загрузка ... Загрузка …




Быстрая цитата

Цитата

Новичок

Профиль
Группа: Участник
Сообщений: 8
Регистрация: 9.10.2006

Репутация: нет
Всего: нет

Всем привет, мне необходимо в программе на VBA вставить рисунок в открытый документ Word. Под этим рисунком должна быть подрисуночная надпись. Как осуществит вставку рисунка с этой надписью. Может сталкивался кто с этим или знает как сделать. Я весь день искал, но так и не нашел ни какой информации. Заранее спасибо всем откликнувшимся.

PM MAIL ICQ   Вверх
Cyric
Дата 9.10.2006, 19:39 (ссылка)
| (нет голосов)
Загрузка ... Загрузка …




Быстрая цитата

Цитата

Шустрый
*

Профиль
Группа: Участник
Сообщений: 57
Регистрация: 27.4.2006
Где: Россия, г. Казань .

Репутация: 3
Всего: 3

Если вы совсем не знакомы с синтаксисом VBA и объектной моделью Word’а, то для написания простеших макросов можете воспользоваться кнопкой «Сервис=>Макрос=>Начать запись…» для автоматической генерации кода и последующего его изучения.

Т.е. я например начав запись сделал вставку рисунка через «Вставка=>Рисунок=>Из файла», и был сгенерирован следующий код:

Код

   Selection.InlineShapes.AddPicture FileName:= _
        "C:Documents and SettingsUserМои документыМои рисункиlaughing_man_big.png" _
        , LinkToFile:=False, SaveWithDocument:=True

Дальше не состовляет никакого труда выделить метод AddPicture, или коллекцию InlineShapes и нажать F1 для более подробного изучения различных параметров этого метода и т.п.

На ранних стадиях это очень хороший способ изучения объектной модели Excel’а или Word’а.

Это сообщение отредактировал(а) Cyric — 9.10.2006, 19:41

PM MAIL ICQ   Вверх
bAndito
  Дата 10.10.2006, 07:46 (ссылка)
| (нет голосов)
Загрузка ... Загрузка …




Быстрая цитата

Цитата

Новичок

Профиль
Группа: Участник
Сообщений: 8
Регистрация: 9.10.2006

Репутация: нет
Всего: нет

Cyric, огромное человеческое спасибо. У меня просто вылетело из головы про запись макроса.  smile

Относительно подрисуночной надписи. Как я предпологаю то это надпись типа

 Рис. 1 <имя рисунка>

Имя можно выдрать из полного пути, а номер рисунка втыкать как переменную, увеличивая её после каждой вставки. Вооо…
Как думаешь, мне так делать эту надпись или может что другое посоветуешь  smile

Это сообщение отредактировал(а) bAndito — 10.10.2006, 07:50

PM MAIL ICQ   Вверх
Cyric
Дата 10.10.2006, 09:47 (ссылка)
| (нет голосов)
Загрузка ... Загрузка …




Быстрая цитата

Цитата

Шустрый
*

Профиль
Группа: Участник
Сообщений: 57
Регистрация: 27.4.2006
Где: Россия, г. Казань .

Репутация: 3
Всего: 3

Можете воспользоваться следующим макросом

Код

Selection.InsertCaption Label:="Рисунок", TitleAutoText:="InsertCaption1", _
         Title:="", Position:=wdCaptionPositionBelow, ExcludeLabel:=0

Вместо Selection там может быть Range
Он будет под указанным объектом вставлять надпись, автоматически называя её «Рисунок 1», «Рисунок 2» и т.д.

Работает точно также, как если на вставленную картинку нажать правой кнопкой и выбрать «Название».

Добавлено @ 09:52 
Можете также воспользоваться Автоназваниями.

Код

    AutoCaptions.CancelAutoInsert
    With AutoCaptions("Word.Picture.8")
        .AutoInsert = True
        .CaptionLabel = CaptionLabels("Рисунок")
    End With
    CaptionLabels("Рисунок").Position = wdCaptionPositionBelow
    With CaptionLabels("Рисунок")
        .NumberStyle = wdCaptionNumberStyleArabic
        .IncludeChapterNumber = False
    End With

PM MAIL ICQ   Вверх
bAndito
Дата 10.10.2006, 12:14 (ссылка)
| (нет голосов)
Загрузка ... Загрузка …




Быстрая цитата

Цитата

Новичок

Профиль
Группа: Участник
Сообщений: 8
Регистрация: 9.10.2006

Репутация: нет
Всего: нет

Спасибо за совет  smile  Все опробую smile

PM MAIL ICQ   Вверх



















Ответ в темуСоздание новой темы
Создание опроса
Правила форума «Программирование, связанное с MS Office»

mihanik

staruha

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми
компонентами


  • Несанкционированная реклама на форуме запрещена
  • Пожалуйста, давайте своим темам осмысленный, информативный заголовок. Вопль «Помогите!» таковым не является.
  • Чем полнее и яснее Вы изложите проблему, тем быстрее мы её решим.
  • Оставляйте свои записи в

    «Книге отзывов о работе администрации»

  • А вот тут лежит FAQ нашего подраздела


Если Вам понравилась атмосфера форума, заходите к нам чаще!

С уважением
mihanik и
staruha.

 

0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Программирование, связанное с MS Office | Следующая тема »

Понравилась статья? Поделить с друзьями:
  • Vba word вставить картинку в колонтитул
  • Vba word базы данных
  • Vba word абзац это
  • Vba word with end with
  • Vba word view type