hola Enter, no probe el codigo pero asi a la ligeras, el error estaria aca
If ImageList1.ListImages(i).Key = xClave Then
MsgBox "Esta imagen ya se encuentra en la lista", vbInformation
Else
Set imgX = ImageList1.ListImages.Add(, xClave, PicTemp)
End If
aver si probas asi
Private Sub Command1_Click()
Dim xClave As String
Dim PicTemp As StdPicture
With dlg
.Filter = "JPG|*.jpg"
.DialogTitle = " Selecciona la imagen del artículo "
.Filename = ""
.ShowOpen
If .Filename = "" Then Exit Sub
xClave = Left(Extraer(.Filename, "\"), (Len(Extraer(.Filename, "\")) - 4))
Set PicTemp = LoadPicture(.Filename)
If ImageList1.ListImages.Count = 0 Then
Set imgX = ImageList1.ListImages.Add(, xClave, PicTemp)
Else
For i = 1 To ImageList1.ListImages.Count
If ImageList1.ListImages(i).Key = xClave Then
MsgBox "Esta imagen ya se encuentra en la lista", vbInformation
Exit sub
End If
Next i
Set imgX = ImageList1.ListImages.Add(, xClave, PicTemp)
End If
End With
End Sub