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
แนวทางการทำ 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
หลักการของการกำหนดการเข้าใช้งานด้วยการกรอก 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
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
Re: การเขียนรห้สผ่านในVBA
Posted: Wed Sep 07, 2011 3:45 pm
by yodpao.b
พอจะเข้าใจแล้วครับ