Page 1 of 1

การเขียนรห้สผ่านในVBA

Posted: Mon Sep 05, 2011 1:21 pm
by yodpao.b
อาจาร์ยช่วยเขียน Code ที่มี Password และ Usename
เวลาเราเปิดไฟล์ excel ขึ้นมา ให้แสดงผลคือคีย์ผิด 3 ครั้งก็ให้ปิดไฟล์ได้ไหมครับ
และจำเป็นต้องสร้าง ฟอร์มด้วยไหม หรือ VBaมีรูปแบบอยู่แล้ว

Re: การเขียนรห้สผ่านในVBA

Posted: Mon Sep 05, 2011 1:34 pm
by snasui
:D แนวทางการทำ Username และ Password ในระดับง่าย ๆ ก็คือเขียนเข้าไปใน Code ครับ เมื่อต้องการจะกำหนดให้ต้องใช้ Username และ Password ก็สามารถเขียน InputBox เพื่อให้กรอก Username หรือ Password ใช้การ Loop และการนับเข้ามาช่วย ถ้ากรอกผิดให้กรอกใหม่และนับเป็น 1 ครั้ง ถ้านับครบ 3 ครั้งให้ปิดไฟล์ เช่นนี้เป็นต้น

ลองเขียนมาดูก่อนครับ ติดตรงไหนก็ค่อยมาช่วยกันดูต่อ

Re: การเขียนรห้สผ่านในVBA

Posted: Mon Sep 05, 2011 4:47 pm
by wping
ลองดูอันนี้นะครับ http://www.youtube.com/watch?v=E2xRf1hZKtY อาจจะไม่ตรงซะทีเดียว แต่คิดว่าน่าจะได้แนวคิดจาก link นี้

Re: การเขียนรห้สผ่านในVBA

Posted: Tue Sep 06, 2011 9:59 am
by yodpao.b
ลองทำดูแล้วได้เท่านี้ละครับ ยังติดปัญหาในการนับครั้งอยู่

Re: การเขียนรห้สผ่านในVBA

Posted: Tue Sep 06, 2011 12:06 pm
by yodpao.b
และข้อถามอาจาร์ยครับถ้าเราทำในรูปแบบฟอร์ม เวลาคนเข้าไปคลิ๊กที่กากบาทที่หัวมุน เขาก็เข้าโปรแกรมได้สิครับ
และฟอร์มที่เราทำก็ไม่สามารถป้องกันอะไรได้ซิครับ

Re: การเขียนรห้สผ่านในVBA

Posted: Tue Sep 06, 2011 8:41 pm
by snasui
:D หลักการของการกำหนดการเข้าใช้งานด้วยการกรอก Password แสดงว่าเราได้ Protect ไฟล์เอาไว้ก่อนครับ ถ้ากรอก Password ไม่ถูกต้องก็ไม่สามารถใช้งานได้ ดังนั้นแม้ปิดกล่องโต้ตอบการกรอก Username และ Password ไปก็ไม่สามารถใช้งานพื้นที่ที่ได้ป้องกันไว้ได้

ตัวอย่างการให้กรอก Username และ Password ดูตาม Code ด้านล่าง ซึ่งใช้ InputBox ใน Module ปกติ ไม่ได้ใช้ Userform

Code: Select all

Option Explicit

Sub UserAndPass()
Dim c As Integer
Dim password As String
Dim username As String
Do
username = InputBox("Enter username")
password = InputBox("Enter password")
c = c + 1
If c = 3 Then
    MsgBox "Username or Password is incorrect."
    Exit Sub
End If
Loop Until username = "123" And password = "456"

End Sub
หลังจากทำงานเสร็จแล้วตอนปิดไฟล์ควรกำหนดให้ใส่ Password ไว้เหมือนเดิมครับ

อ่านเพิ่มเติมสำหรับการ Protect และ Unprotect Worksheet โดย VBA ตาม Link นี้ครับ http://topicstock-tech.pantip.com/tech/ ... 910.html#6

Re: การเขียนรห้สผ่านในVBA

Posted: Wed Sep 07, 2011 12:49 pm
by yodpao.b
ลองทำดูแล้วแต่ไม่ทราบว่าใส่ code ถูกที่หรือเปล่า ได้แนบไฟล์มาให้
"หลังจากทำงานเสร็จแล้วตอนปิดไฟล์ควรกำหนดให้ใส่ Password ไว้เหมือนเดิม" หมายความว่าอย่างไร
เพราะ มันก็ทำงานได้ตามปกติ

Re: การเขียนรห้สผ่านในVBA

Posted: Wed Sep 07, 2011 1:43 pm
by snasui
:D Code ทำงานถูกต้องแล้วครับ ไม่ทราบว่าต้องการผลลัพธ์เป็นอย่างไรครับ :?:
อ่านตรงด้านล่างนี้แล้วเข้าใจว่าอย่างไรครับ :?:
snasui wrote: หลักการของการกำหนดการเข้าใช้งานด้วยการกรอก Password แสดงว่าเราได้ Protect ไฟล์เอาไว้ก่อนครับ
และสำหรับ
yodpao.b wrote:"หลังจากทำงานเสร็จแล้วตอนปิดไฟล์ควรกำหนดให้ใส่ Password ไว้เหมือนเดิม" หมายความว่าอย่างไร
หมายความว่าให้ใช้ Event ของการ Close Workbook เข้ามาใส่รหัสไว้อีกครั้ง เช่น

Code: Select all

Private Sub Workbook_BeforeClose(Cancel As Boolean)
    ActiveSheet.Protect Password:="secret"
End Sub
:mrgreen:

Re: การเขียนรห้สผ่านในVBA

Posted: Wed Sep 07, 2011 3:45 pm
by yodpao.b
พอจะเข้าใจแล้วครับ