اضفت السطر هذا الى الدالة
.Line.Visible = msoFalse
ضعه في المكان الذي تراه موجود فيه ادناه
في كود الدالة في ملفك
Option Explicit
Option Compare Text
'=============================================
' عرض صورة في الخليةِ
' Showing an image in cell
'=============================================
' اسم مجلد الصور
' اذا كان مجلد الصور في نفس مجلد ملف الاكسل
' اكتب اسمه فقط
' والا اكتب المسار كاملا
' "D:\MyDocument\MyFunction\photo"
Private Const kh_pic As String = "MyImeg"
'=============================================
' امكانية تحرير اي نوع من الصور لديك ادناه
Private Const MyTyp As String = ".jpg,.bmp,.gif,.png,.tif"
'=============================================
'=============================================
Function kh_ShowImage(ByVal NameImag, ByVal ImagRng As Range, Optional ByVal MyWidth As Single, Optional ByVal MyHeight As Single)
Dim Tp
Dim shp As Shape
Dim ibo As Boolean
Dim MyTop As Single, MyLeft As Single
Dim MyFile As String, MyPath As String
'----------------------------------
On Error GoTo 1
'----------------------------------
MyTop = ImagRng.Top: MyLeft = ImagRng.Left
With ImagRng.Worksheet
For Each shp In .Shapes
If shp.Top = MyTop And shp.Left = MyLeft Then
shp.Delete: Exit For
End If
Next shp
End With
'-----------------------------------
If IsEmpty(NameImag) Then GoTo 1
'-----------------------------------
If MyWidth = 0 Then MyWidth = ImagRng.Width
If MyHeight = 0 Then MyHeight = ImagRng.Height
'-----------------------------------
If Not InStr(kh_pic, ":") Then MyPath = ThisWorkbook.path & "\"
MyFile = MyPath & kh_pic & "\" & CStr(NameImag)
'-----------------------------------
For Each Tp In Split(MyTyp, ",")
If Not Dir(MyFile & Trim(Tp), vbDirectory) = vbNullString Then
With ImagRng.Worksheet.Shapes.AddShape(msoShapeRectangle, MyLeft, MyTop, MyWidth, MyHeight)
.Fill.UserPicture MyFile & Trim(Tp)
.Line.Visible = msoFalse
End With
ibo = True
Exit For
End If
Next
1
kh_ShowImage = ibo
End Function
اما الدمج فلا انصح به
تحياتي