Maybe something like
Sub Macro1()Dim strImage As String
Dim oILShape As InlineShape
Dim oShape As Shape
Dim lngMargin As Long
lngMargin = Selection.Sections(1).PageSetup.RightMargin
strImage = BrowseForFile("Select the image to insert")
Set oILShape = Selection.InlineShapes.AddPicture(strImage)
Set oShape = oILShape.ConvertToShape
With oShape
.LockAspectRatio = msoTrue
.Width = 180
.WrapFormat.Type = wdWrapSquare
.RelativeHorizontalPosition = wdRelativeHorizontalPositionRightMarginArea
.LeftRelative = -(.Width + lngMargin - 10)
End With
End Sub
Private Function BrowseForFile(Optional strTitle As String) As String
'Graham Mayor
Dim fDialog As FileDialog
On Error GoTo Err_Handler
Set fDialog = Application.FileDialog(msoFileDialogFilePicker)
With fDialog
.TITLE = strTitle
.AllowMultiSelect = False
.Filters.Clear
.Filters.Add "Image files", "*.png,*.jpg,*.bmp,*.gif,*.tif"
.InitialView = msoFileDialogViewThumbnail
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