title: How to add picture in Word document and adjust its size and position?
body: <p>The setup is: an Excel table with some usernames and filenames (as files are photos in some directory). The aim is to create a Word document based on data from selected row by changing variables in template to real username and adding photo to it. The trouble is in positioning and setting properties of that photo. I used <code>Selection.InlineShapes.AddPicture</code> method due to <code>Selection.Shapes.AddPicture</code> method returned error (<em>Run-time error '438': Object doesn't support this property or method</em>) to me. So, the following is my actual code, and I hope someone could help me. Thanks in advance!</p>
  
  <pre><code>Option Explicit
  
  Sub CreateDocs()
  
      Const wdReplaceAll = 2
  
      Dim user_name As String, user_surname As String, user_patronymic As String
      Dim user_type As String, user_type_num As Integer, user_country As String
      Dim user_pic As String, pic As Object
      Dim wrd As Object, doc As Object
      Dim length As Integer
      Dim ind As Integer
  
      Dim pict As Object
  
      ind = ActiveCell.Row
  
      With Sheets("SHEET_NAME")
          user_name = .Cells(ind, 4)
          user_surname = .Cells(ind, 3)
          user_type = .Cells(ind, 22)
          user_pic = .Cells(ind, 25)
      End With
  
      Set wrd = CreateObject("Word.Application")
      wrd.Visible = True
  
      Set doc = wrd.Documents.Add(ThisWorkbook.Path &amp; "\SUBPATH\TMPL.dotx")
  
      Set pic = wrd.Selection.InlineShapes.AddPicture( _
          Filename:=ThisWorkbook.Path &amp; "\SUBPATH\" &amp; user_pic, _
          LinkToFile:=False, _
          SaveWithDocument:=True _
      )
      pic.ConvertToShape
        ' THE NEXT 4 CODE LINES DOESN'T WORK AT ALL
        ' I have the same error here:
        ' Run-time error '438': Object doesn't support this property or method
      pic.LockAspectRatio = msoTrue
      pic.Left = 197
      pic.Top = 191
      pic.Width = 179
  
      With wrd.Selection.Find
          .ClearFormatting
          .Replacement.ClearFormatting
          .Text = "%user_name%"
          .Replacement.Text = user_name
          .Execute Replace:=wdReplaceAll
          .Text = "%user_surname%"
          .Replacement.Text = user_surname
          .Execute Replace:=wdReplaceAll
          .Text = "%user_type%"
          .Replacement.Text = user_type
          .Execute Replace:=wdReplaceAll
      End With
  
      doc.SaveAs ThisWorkbook.Path &amp; "\SUBPATH\" &amp; user_name &amp; ".docx"
  
      doc.Close False
      Set doc = Nothing
  
      wrd.Quit False
      Set wrd = Nothing
  
  End Sub
  </code></pre>