You have a conflict between the use of height and width and lock aspect. You only need the width The following works in Word 2010 and later.
Code:
Option Explicit
Sub InsertImage()
Dim oShp As Shape
Dim strFName As String
strFName = BrowseForFile("Select the picture to insert")
Set oShp = ActiveDocument.Shapes.AddPicture(FileName:=strFName, _
SaveWithDocument:=True)
With oShp
With .WrapFormat
.Type = wdWrapSquare
.Side = wdWrapBoth
.DistanceTop = InchesToPoints(0.1)
.DistanceBottom = InchesToPoints(0.1)
.DistanceLeft = InchesToPoints(0.1)
.DistanceRight = InchesToPoints(0.1)
End With
.LockAspectRatio = msoTrue
.Width = InchesToPoints(9) ' The displayed width of the picture
.Left = InchesToPoints(0.1) - ActiveDocument.PageSetup.LeftMargin 'The distance from the left edge of the paper
.Top = InchesToPoints(2) - ActiveDocument.PageSetup.TopMargin 'The distance from the top edge of the paper
While .ZOrderPosition > 1
.ZOrder msoSendBackward
Wend
End With
lbl_Exit:
Set oShp = Nothing
Exit Sub
End Sub
Private Function BrowseForFile(Optional strTitle As String) As String
Dim fDialog As FileDialog
On Error GoTo err_Handler
Set fDialog = Application.FileDialog(msoFileDialogFilePicker)
With fDialog
.Title = strTitle
.AllowMultiSelect = False
.Filters.Clear
.Filters.Add "Graphics Files", "*.jpg,*.png,*.bmp"
.InitialView = msoFileDialogViewList
If .Show <> -1 Then GoTo err_Handler:
BrowseForFile = fDialog.SelectedItems.Item(1)
End With
lbl_Exit:
Exit Function
err_Handler:
BrowseForFile = vbNullString
Resume lbl_Exit
End Function