A family of Microsoft word processing software products for creating web, email, and print documents.
Here's a rather minimal macro to do what you asked for:
Sub InsertPictureSpecial()
Dim strFilename As String
Dim shpShape As Shape
With Dialogs(wdDialogInsertPicture)
.Display
strFilename = .Name ' full path of selected file
End With
If Len(strFilename) > 0 Then
Set shpShape = ActiveDocument.Shapes.AddPicture( _
FileName:=strFilename, _
Anchor:=Selection.Range)
With shpShape
.LockAspectRatio = msoTrue
.Height = CentimetersToPoints(4#)
.WrapFormat.Type = wdWrapSquare
End With
End If
End Sub
The first part uses the built-in Insert > Picture dialog to let the user select a file. The .Display command shows the dialog, but when the user clicks the Insert button the dialog just closes without inserting the picture in the document. Instead, the next line captures the filename (including the full path) in a String variable.
The next part uses the filename to insert the picture as a floating Shape object (even if the user's Options setting says to insert pictures as In Line with Text). The object is "anchored" to the current location of the cursor (the Selection in VBA-speak). Then the macro locks the aspect ratio (the fraction height/width), sets the height to 4 cm, and sets the wrapping.
This macro could be expanded in several ways, such as setting the picture's position (its .Left and .Top values) relative to the anchor or to the page margins; using a different method of choosing the file to insert; and adding some error-trapping in case something goes wrong.