VBA: Thiết lập quyền đọc file Excel cho toàn bộ tổ chức

VBA: Thiết lập quyền đọc file Excel cho toàn bộ tổ chức Vậy là tôi gặp phải một vấn đề với VBA. Do chính sách CNTT, tôi không thể kiểm soát quyền đọc/ghi vào các tệp Excel của mình ở cấp độ thư mục, mà phải thực hiện cho từng tệp riêng lẻ. Tôi có một thư mục chứa 15 tệp, mà bất kỳ ai có quyền truy cập vào thư mục đều có thể truy cập và ghi vào. Vào một ngày nhất định, tôi muốn khóa các tệp này lại để chỉ một nhóm cụ thể mới có thể ghi, nhưng những người còn lại vẫn có thể đọc.

Tôi biết việc này khá dễ thực hiện thủ công (File->Info->Protect Workbook->Restrict Access), nhưng vì tôi đã chạy macro vì những lý do khác, nên tôi muốn nó cũng thực hiện phần này. Đây chính là lúc tôi gặp phải vấn đề:

Tôi đã tìm ra cách thiết lập quyền cho một người dùng cụ thể bằng cách sử dụng mã này

 Sub set_access() Dim UserPerm As Office.UserPermission Workbooks("workbook name").Activate Set UserPerm = ActiveWorkbook.Permission.Add("name@company", msoPermissionFullControl) Tôi có thể lặp lại thao tác này cho từng người mà tôi muốn họ truy cập đầy đủ, không vấn đề gì. Có khoảng mười lăm người chúng tôi và tôi biết rõ họ là ai. Sub set_access() Dim UserPerm As Office.UserPermission Workbooks("workbook name").Activate Set UserPerm = ActiveWorkbook.Permission.Add("name@company", msoPermissionFullControl) 

Vấn đề là tôi cũng muốn "mọi người trong tổ chức của tôi" được giữ quyền đọc. Tính năng này có nút riêng nếu tôi thực hiện thủ công (trong menu Quyền được truy cập như đã đề cập ở trên), nhưng tôi không hiểu cách kích hoạt cài đặt đó thông qua VBA. Tôi đã thử ghi lại một macro ghi lại việc tôi thực hiện thủ công để xem mã, nhưng không có gì được ghi lại. Tôi cũng đã đọc gần như mọi thứ tôi có thể tìm thấy trực tuyến khoảng bốn hoặc năm lần, và những gì tôi cần dường như không được đáp ứng.

Có ai biết điều này có khả thi không? Hoặc nếu không, tôi có thể đạt được kết quả tương tự bằng cách nào khác không?


Tóm lại : Tôi có thể thiết lập quyền cho từng cá nhân, nhưng ngoài ra, tôi muốn cấp quyền chỉ đọc chung cho tất cả mọi người trong tổ chức vào các tệp Excel của mình. Điều này có thể thực hiện bằng VBA không? Nếu được thì làm thế nào?




Trả lời:
Tại sao không đặt mật khẩu để sửa đổi?

Tệp \ Lưu dưới dạng \ Công cụ \ Tùy chọn chung:


Bây giờ khi bạn mở tập tin đó, bạn sẽ nhận được thông báo này:

Andreas.



Trả lời:
Điều này có hai vấn đề. Thứ nhất, như tôi đã viết, tôi đang tìm kiếm một giải pháp VBA, mặc dù tất nhiên là có thể đặt mật khẩu bằng VBA. Thứ hai, mật khẩu không phải là thứ tôi cần. Người dùng đơn giản là không muốn có mật khẩu. Vì đã có chức năng cấp quyền đọc cho toàn bộ tổ chức, nên chức năng đó sẽ được sử dụng cho dù được kích hoạt thủ công cho từng tệp hay tự động trong macro.



Trả lời:
Tôi không chắc các quyền của từng tài liệu được lưu trữ ở đâu, nhưng giả sử chúng là một thuộc tính của tài liệu (và nếu bạn có một số lượng lớn nhân viên) thì việc sử dụng UserPermissions để thiết lập quyền cho từng người dùng có thể làm dung lượng tệp tăng lên đáng kể. Ngoài ra, điều gì sẽ xảy ra khi bạn thuê một nhân viên mới - bạn có phải chạy lại mã để thêm họ vào mọi tệp lịch sử không? Trời ơi.

Thay vào đó, bạn có thể muốn khám phá Office.Permissions để xem liệu nó có cho phép bạn tạo cấp độ truy cập chung hay không, sau đó sử dụng mã của bạn để thêm quyền truy cập nâng cao vào nhóm nhỏ hơn của bạn.

https://docs.microsoft.com/en-us/office/vba/api/office.permission

và bài đăng này cũng chia sẻ các mã liên quan: https://stackoverflow.com/questions/1928866/who-am-i-how-to-use-microsoft-office-permission-userpermission HTH

Trả lời:
Tôi đã xem qua những trang này rồi, vì như bạn nói, tôi cảm thấy đây chính là kiểu thiết lập tôi muốn. Vấn đề là tôi không tìm thấy cú pháp nào thực sự phù hợp cho việc này. Sẽ hợp lý hơn nếu có thêm tùy chọn cho phép người dùng chung/không xác định truy cập tệp, ngoài tất cả các quyền đã được chỉ định, nhưng tôi không tìm thấy.

Comments

Popular posts from this blog

Excel 2016 - mở tất cả các tệp trong MỘT phiên bản

Điều tôi muốn làm trong Excel 2010 là tạo một nút tùy chỉnh và gắn nó vào thanh công cụ Truy nhập nhanh và chạy một macro cụ thể.

Không thể hạn chế quyền trên tệp MS excel cho mac