Page 1 of 1

ต้องการไม่ให้คำสั่ง Macro ทำงานขณะ Import ไฟล์ excel

Posted: Wed Jan 23, 2013 10:44 pm
by sungtor
สวัสดีครับอาจารย์และทุกท่าน ผมมีคำถามอยากจะรบกวนดังนี้นะครับ ผมเขียนคำสั่งใน access สำหรับอ่านข้อมูลจากไฟล์ excel เพื่อ Import ข้อมูลเข้าฐานข้อมูลใน access โดยใช้คำสั่ง ตามด้านล่างครับ

Dim sExcel As New Excel.Application
Dim sworkbook As Excel.Workbook
sExcel.Visible = True
Set sworkbook = Workbooks.Open(Filename)

ซึ่งพบว่าเมื่อคำสั่ง Workbooks.Open ทำงานไฟล์ excel ก็ถูกเปิดแต่คำสั่ง Macro ใน excel ก็เริ่มทำงานทันทัน ต่างจากตอนที่ผมเปิดไฟล์ excel เพียงอย่างเดียว ซึ่งจะมีข้อความ Security Warning ถามว่าต้องการให้ macro ทำงานหรือไม่

จึงอยากรบกวนขอคำปรึกษาจากผูัรู้ทุกท่านช่วยแนะนำหน่อยนะครับ ถ้าหากไม่ต้องการให้ macro ทำงานขณะเปิดไฟล์ excel เพื่ออ่านข้อมูลจะต้องทำอย่างไร

ปล. ผมได้ทดลองใช้คำสั่ง sworkbook.RunAutoMacros xlAutoDeactivate แล้วแต่ macro ก็เริ่มทำงานทันทีที่เปิดแฟ้มคับ

Re: ต้องการไม่ให้คำสั่ง Macro ทำงานขณะ Import ไฟล์ excel

Posted: Thu Jan 24, 2013 7:03 am
by snasui
:D การโพสต์ Code ให้เป็น Code เพื่อสะดวกในการอ่านและ Copy ไปทดสอบดูที่ Link นี้ครับ viewtopic.php?f=3&t=1187

สำหรับกรณีที่ถามมานั้นลองทดสอบโดยนำ Code ด้านล่างไปวางใน VBE ตรง ThisWorkbook ของไฟล์ที่ต้องการเปิดขึ้นมาแล้วทดสอบ Run Code จาก Access ดูใหม่ครับ

Code: Select all

Private Sub Workbook_Open()
    Dim msg As Byte
    msg = MsgBox("Are you sure to run code?", vbYesNo)
    If msg = vbNo Then
        ThisWorkbook.Close , False
    End If
End Sub

Re: ต้องการไม่ให้คำสั่ง Macro ทำงานขณะ Import ไฟล์ excel

Posted: Fri Jan 25, 2013 9:41 am
by sungtor
ขอขอบคุณอาจารย์นะครับ ผมได้ลองใช้คำสั่ง sExcel.AutomationSecurity = msoAutomationSecurityForceDisable ตามที่แนะนำ macro ก็ไม่ทำงานตามต้องการครับ ขอบคุณมากๆครับ