Вставка изображения на определенную страницу Word

Программирование на Visual Basic for Applications
seqular
Начинающий
Начинающий
 
Сообщения: 1
Зарегистрирован: 26.08.2009 (Ср) 10:28

Вставка изображения на определенную страницу Word

Сообщение seqular » 26.08.2009 (Ср) 10:41

Нужно написать процедуру, которая вставляет в документ изображение на определенную страницу. Передаются три параметра: номер страницы и Left и Top изображения. В общем вроде бы все просто, но что бы я не делал - вставляется все только на первую страницу.

Фрагмент процедуры:
Код: Выделить всё
        With ActiveDocument.Shapes.AddPicture(Word.ActiveDocument.Path & "\img.bmp")
        .Left = ParamLeft
        .Top = ParamTop
        End With

Примерно такой код.

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Re: Вставка изображения на определенную страницу Word

Сообщение alibek » 26.08.2009 (Ср) 11:30

Ты не можешь вставлять изображение на произвольную страницу.
Меняй привязку якоря.
Lasciate ogni speranza, voi ch'entrate.

viter.alex
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 221
Зарегистрирован: 27.07.2008 (Вс) 20:17
Откуда: Montreal

Re: Вставка изображения на определенную страницу Word

Сообщение viter.alex » 28.08.2009 (Пт) 19:55

Можно, только немного хитрее
Код: Выделить всё
Sub AddPictureToSpecifiedPage(sPicPath As String, iPage As Integer, iTop As Single, iLeft As Single)
  Dim oRng As Range 'диапазон для страницы, на которую нужно вставить картинку
  Dim oShp As Shape 'переменная для картинки вне текста
  Dim oInShp As InlineShape 'переменная для картинки в тексте
  'Переходим на указанную страницу
  Set oRng = ActiveDocument.Range.GoTo(wdGoToPage, wdGoToAbsolute, iPage)
  'Добавляем в текст этой страницы картинку
  Set oInShp = oRng.InlineShapes.AddPicture(sPicPath, False, True, oRng)
  'Убираем картинку из текста
  Set oShp = oInShp.ConvertToShape
  'Ставим для картинки заданные координаты
  oShp.Top = iTop: oShp.Left = iLeft
  Set oRng = Nothing: Set oShp = Nothing: Set oInShp = Nothing
End Sub

А якорь у картинки только для чтения.
Лучше день потерять — потом за пять минут долететь!


Вернуться в VBA

Кто сейчас на конференции

Сейчас этот форум просматривают: SemrushBot и гости: 24

    TopList