La forma de abrir una imagen es diferente a abrir un archivo de excel.
Te cambio la macro, para que te abra la carpeta en la ruta donde tienes tu archivo, ya estando en la ventana, puedes navegar a la carpeta que requieras.
Cambia en la macro "B1" por la celda en la que quieras que se inserte la imagen.
Sub abrearchivo()
'Por.Dant Amor
With Application.FileDialog(msoFileDialogFilePicker)
.Title = "Seleccione archivo"
.Filters.Clear
.Filters.Add "Todos los archivos", "*.*"
.Filters.Add "Imágenes jpg", "*.jp*"
.FilterIndex = 2
.AllowMultiSelect = False
.InitialFileName = ThisWorkbook.Path
'.Show
If .Show Then
'Workbooks.Open .SelectedItems.Item(1)
'
'Celda para poner la foto
With Range("B1")
arr = .Top
izq = .Left
anc = .Width
alt = .Height
End With
'
ActiveSheet.Pictures.Insert(.SelectedItems.Item(1)).Select
With Selection
.Placement = xlMoveAndSize
.PrintObject = True
.ShapeRange.LockAspectRatio = msoFalse
.ShapeRange.Top = arr
.ShapeRange.Left = izq
.ShapeRange.Height = alt
.ShapeRange.Width = anc
.ShapeRange.Rotation = 0#
End With
'
End If
End With
End Sub
Si quieres que empiece en la carpeta que tienes en la celda A1, entonces utiliza esta macro:
Sub abrearchivo()
'Por.Dant Amor
ruta = [A1]
With Application.FileDialog(msoFileDialogFilePicker)
.Title = "Seleccione archivo"
.Filters.Clear
.Filters.Add "Todos los archivos", "*.*"
.Filters.Add "Imágenes jpg", "*.jp*"
.FilterIndex = 2
.AllowMultiSelect = False
.InitialFileName = ruta
'.Show
If .Show Then
'Workbooks.Open .SelectedItems.Item(1)
'
'Celda para poner la foto
With Range("B1")
arr = .Top
izq = .Left
anc = .Width
alt = .Height
End With
'
ActiveSheet.Pictures.Insert(.SelectedItems.Item(1)).Select
With Selection
.Placement = xlMoveAndSize
.PrintObject = True
.ShapeRange.LockAspectRatio = msoFalse
.ShapeRange.Top = arr
.ShapeRange.Left = izq
.ShapeRange.Height = alt
.ShapeRange.Width = anc
.ShapeRange.Rotation = 0#
End With
'
End If
End With
End Sub
Saludos.Dante Amor