Ẩn các mục nhập trong một InputBox (Microsoft Excel)
Andrew đang viết một macro và anh ấy muốn cho người dùng cơ hội nhập mật khẩu của họ trước khi cho phép họ sử dụng các chức năng nhất định do macro cung cấp. Anh ta đang sử dụng chức năng InputBox và tự hỏi liệu có cách nào để “loại bỏ” bất cứ điều gì ai đó nhập vào, vì vậy mật khẩu được giữ kín khi nó được nhập. (Điều này được thực hiện trong nhiều chương trình, nơi bất cứ thứ gì được nhập sẽ được thay thế trên màn hình bằng dấu hoa thị hoặc một số ký tự khác.)
Không có cách trực tiếp nào để thực hiện việc này bằng cách sử dụng hàm InputBox; nó không bao gồm các chức năng cần thiết. Có những người đã làm điều đó bằng cách sử dụng các lệnh gọi API và những thứ tương tự, nhưng điều đó khá dính líu và — trong tất cả khả năng — ngoài phạm vi của ExcelTips.
Một cách tiếp cận dễ dàng hơn là tạo UserForm của riêng bạn trong VBA. Biểu mẫu có thể chứa TextBox và điều khiển bao gồm một thuộc tính mà bạn có thể đặt để hoạt động như một ký tự che khi ai đó nhập mật khẩu. Nếu bạn hiển thị cửa sổ thuộc tính cho điều khiển TextBox, bạn sẽ thấy một thuộc tính có tên PasswordChar. Đặt điều này thành bất kỳ ký tự nào bạn muốn sử dụng cho mặt nạ. Ví dụ: bạn có thể đặt một dấu hoa thị trong thuộc tính.
Khi đến lúc kiểm tra xem người dùng đã nhập đúng mật khẩu hay chưa, thì tất cả những gì bạn cần làm là kiểm tra giá trị trong điều khiển TextBox; nó sẽ là “rõ ràng” (không có mặt nạ), trong khi phiên bản trên màn hình vẫn bị che. Nói cách khác, nếu ai đó nhập “MyPass” làm mật khẩu của họ, thì đó là giá trị được liên kết với chính điều khiển.
Tuy nhiên, những gì hiển thị trên màn hình là sáu dấu hoa thị (hoặc bất kỳ ký tự mặt nạ nào bạn đã chỉ định), một cho mỗi chữ cái được nhập.
_Lưu ý: _
Nếu bạn muốn biết cách sử dụng các macro được mô tả trên trang này (hoặc trên bất kỳ trang nào khác trên trang ExcelTips), tôi đã chuẩn bị một trang đặc biệt bao gồm thông tin hữu ích.
ExcelTips là nguồn của bạn để đào tạo Microsoft Excel hiệu quả về chi phí.
Mẹo này (3120) áp dụng cho Microsoft Excel 97, 2000, 2002 và 2003.