ActiveX Image Word выбрать из Excel?

Я хочу скопировать изображение в элемент управления изображения ActiveX в слове.

Я думал, что это можно сделать через.InlineShapes(индекс), но у меня есть только имя элемента управления..

Private Sub CommandButton13_Click()


 Dim intNoOfRows

 Dim intNoOfColumns

 Dim objWord

 Dim objDoc

 Dim objRange

 Dim objTable

Dim s As Word.InlineShape
Dim shp As Shape
intNoOfRows = 4

intNoOfColumns = 2

Set objWord = CreateObject("Word.Application")

objWord.Visible = True

Set objDoc = objWord.Documents.Add

Set objRange = objDoc.Range

objDoc.Tables.Add objRange, intNoOfRows, intNoOfColumns

Set objTable = objDoc.Tables(1)

objTable.Borders.Enable = True



  objTable.Cell(1, 1).Range.InlineShapes.AddPicture UserForm1.txtImageLogo
  objTable.Cell(1, 2).Range.ParagraphFormat.Alignment = wdAlignParagraphRight
  objTable.Cell(1, 2).Range.InlineShapes.AddPicture   UserForm1.txtImageLogoClient






objTable.Cell(2, 1).Merge MergeTo:=objTable.Cell(2, 2)

objTable.Cell(2, 1).Height = 520

With objWord
Set s = objTable.Cell(2,  1).Range.InlineShapes.AddPicture(UserForm1.txtImageBackground)
s.Height = 510
s.Width = 460


End With

  objTable.Cell(3, 1).Merge MergeTo:=objTable.Cell(3, 2)
   objTable.Cell(3, 1).Range.Text = "Prepared by:" & "  " & UserForm1.txtPrepared
   objTable.Cell(4, 1).Merge MergeTo:=objTable.Cell(4, 2)
   objTable.Cell(4, 1).Range.ParagraphFormat.Alignment = wdAlignParagraphRight
  objTable.Cell(4, 1).Range.Text = "Belgrade," & " " & Format(Date, "MMMM DD, YYYY ")


  Set objTable = Nothing


  End Sub

Итак, мне удалось вставить таблицу в слово, все в порядке, но мне просто нужно поместить backgroundImage позади текста.

Спасибо!

1 ответ

Предполагая, что это элемент управления Image в Developer/Controls/Legacy Tools/ActiveX:

Dim ax As MsForms.Image
Set ax = ActiveDocument.InlineShapes(1).OLEFormat.Object
ax.Picture = LoadPicture("C:\Users\Public\Pictures\Sample Pictures\Koala.jpg")

Вам необходимо получить доступ к OLEFormat.Object объекта InlineShape, чтобы обратиться к его общедоступным свойствам и методам COM. Устаревшие элементы управления ActiveX на самом деле являются элементами управления пользовательской формы, поэтому, если вы объявите их с использованием строгой типизации, вы получите Intellisense. Вы также можете затемнить как объект, но тогда нет Intellisense.

Другие вопросы по тегам