ถ้าเป็นไฟล์พวก excel word access มันทำง่ายคับ ในการสั่งปิด แต่พอเป็นพวกไฟล์ PDF หรือ ไฟล์รูปภาพ คงยังหาวิธีไม่เจอเลยคับ
คือถ้าอยากจะปิดไฟล์พวกนี้จริงๆ คงต้องสั่งปิด Process ที่ทำงานอยู่กับโปรแกรมที่ใช้เปิดไฟล์รูปภาพ และโปรแกรม adobe reader ครับ
ส่วนปิดไฟล์ Word ก็ประมาณนี้ครับ
Dim sPath, sfilename, sLink, sCopyInto, myOutput As String
Dim fso As Object
Dim OpenDB As Object
Dim myFileOld As FileSystemObject
Dim appExtension As String
Dim ObjName As String
Set fso = CreateObject("Scripting.FileSystemObject")
sfilename = GetFileName
myOutput = Right(sfilename, Len(sfilename) - InStrRev(sfilename, "."))
sPath = GetFilePath
sLink = sPath & sfilename
sCopyInto = [Forms]![manHisInsu]![folderInsu] & "\" & [Forms]![manHisInsu]![Even2] & "." & myOutput 'แล้ว Copy File
fso.CopyFile sLink, sCopyInto
Set fso = Nothing
appExtension = Right$(slink, Len(slink) - InStrRev(slink, ".") + 1) 'ดึงนามสกุลมา
ObjName = Right(slink, Len(slink) - InStrRev(slink, "\")) 'ดึงชื่อไฟล์และนามสกุลมา
If appExtension = ".doc" Or appExtension = ".docx" Then
Set objWord = GetObject(, "word.application")
Set objDocs = objWord.Documents
For Each doc In objDocs
If StrComp(doc.Name, ObjName, 1) = 0 Then
doc.Close
objWord.Application.Quit
Exit For
End If
Next
Set objDocs = Nothing
Set objWord = Nothing
End If
Set myFileOld = New FileSystemObject 'สั่งลบไฟล์เดิม
myFileOld.DeleteFile sLink
Set myFileOld = Nothing
MsgBox ("บันทึกเรียบร้อยแล้ว"), vbInformation, "ผลการทำงาน"
Exit_Command33_Click:
Exit Sub
Err_Command33_Click:
MsgBox " ไฟลนี้อาจเปิดอยู่ ให้ปิดไฟล์นี้เสียก่อน"
Resume Exit_Command33_Click