Access İle Açık Excel Belgesini Kapatma

20/09/2017, 12:20

access_delisi

Merhaba, konu başlığında da belirttiğim gibi, forma eklediğim butonu tıkladığımda belirli Excel belgesinin açık olup olmadığını nasıl denetleyebilirim? Ve bu açık Excel belgesini kod ile nasıl kapatabilirim.
20/09/2017, 12:25

ozanakkaya

Merhaba. Modüle ekleyeceğiniz


Public Function IsWorkbookOpen(ByVal strWorkBookName As String) As Boolean

    Dim objExcel As Object
    Dim varWorkbook As Variant
On Error GoTo ExitFunction
    Set objExcel = GetObject(, "Excel.Application")
    For Each varWorkbook In objExcel.Workbooks
        If varWorkbook.Name = strWorkBookName Then
            IsWorkbookOpen = True
            Exit For
        End If
    Next
ExitFunction:
    Set objExcel = Nothing
    
End Function


kodu ile Excel belgesinin açık olup olmadığını denetleyebilirsiniz. Kodun kullanımı:


If IsWorkbookOpen("excelbelgesininadi.xlsx") = True Then
msgbox("belge açık")
end if

Şeklindedir.


Dim GExcelBelgesi As String
Dim xlApp As Object
Dim wb As Workbook

GExcelBelgesi = CurrentProject.Path & "\deneme.xlsx"

If IsWorkbookOpen("deneme.xlsx") = True Then

   Set xlApp = GetObject(, "Excel.Application")
   xlApp.Application.ScreenUpdating = False
   xlApp.Visible = True
   
   Set wb = xlApp.Workbooks.Open(GExcelBelgesi, True, False)


   xlApp.Application.ScreenUpdating = True
   wb.Save
   wb.Close False
   
   xlApp.Quit
   Set xlApp = Nothing

End If

Kodu ile de açık olan Excel belgesini kapatabilirsiniz.
20/09/2017, 12:54

access_delisi

ozan bey çok tesekkur ederim.