TIỆN ÍCH - TRA CỨU

ĐỒNG HỒ TỰ CHẾ

ÂM LỊCH

NỘI DUNG CHÍNH DIỄN ĐÀN

HỖ TRỢ TRỰC TUYẾN

  • (Lê Kim Tường)

ĐIỀU TRA Ý KIẾN

Bạn thấy trang này như thế nào?
Rất đẹp
Đẹp
Bình thường
Ý kiến khác

LIÊN KẾT WEBSITES

THỐNG KÊ

  • truy cập   (chi tiết)
    trong hôm nay
  • lượt xem
    trong hôm nay
  • thành viên
  • Ảnh ngẫu nhiên

    20289671.jpg 1242013SVTN1.jpg Cdsp1.gif Book11.jpg ONLINE.gif Vi_rut_pha_may_tinh_nhu_the_nao.swf LichsuVN.jpg Khonggicothethaytheem.mp3 Bay_giua_ngan_ha.swf Dong_song_que_anh_que_em.swf Flash_nen_181.swf Ok.flv Qua_tang_chuc_mung_nam_moi.swf MUNG_XUAN_TAN_MAO.swf Mot_khuc_tam1.swf Chuc_mung_nam_moi.swf Flas_mung_xuan_2011.swf Happy_new_yeardot_phao.swf CLICK_DE_THAY_DIEU_UOC_TRONG_NAM_MOI.swf Tuyetroi_dGSINH.swf

    Thành viên trực tuyến

    0 khách và 0 thành viên
    Gốc > Thủ thuật Excel >

    Ngăn chặn người sử dụng thực hiện một số hành động nào đó nhất định

       Mặc dù Excel có hỗ trợ việc bảo vệ cho bảng tính (Protect Sheet, Protect Workbook), nhưng công cụ thô sơ này không bao gồm việc chỉ cho phép người sử dụng một số đặc quyền hạn chế - trừ khi bạn làm theo những chiêu sau đây.

    Bạn có thể quản lý việc tương tác với các bảng tính của bạn bằng cách giám sát và đáp ứng các sự kiện. Các sự kiện (event), là những hành động xảy ra khi bạn làm việc với các bảng tính hoặc các Sheet. Những sự kiện này thường bao gồm việc mở (open) một bảng tính, lưu (save) nó, và đóng (close) nó. Bạn có thể bảo Excel chạy những mã Visual Basic (macro) một cách tự động khi xảy ra bất kỳ một trong những sự kiện như thế.

    Tuy nhiên, bạn nên biết rằng, người sử dụng có thể vượt qua tất cả những mã bảo vệ bởi Visual Basic bẳng cách vô hiệu hóa việc thực thi các macro: Nhấn nút OfficeExcel OpionsTrust CenterTrust Center SettingMacro Settings [E2003: Tools | Macro | Security]. Nếu đặt mức độ an toàn là Disable all macros with notification [E2003: mức Medium], mỗi khi mở một bảng tính có chứa macro, Excel sẽ xuất hiện một hộp thông báo và cho phép người sử dụng có cơ hội để tắt các macro. Nếu đặt mức độ an toàn là Disable all macros without notification [E2003: mức High], Excel sẽ ngăn không cho chạy tất cả các macro có trong bảng tính. Nói cách khác, khi cần phải dùng các macro có trong bảng tính, người sử dụng sẽ chọn một mức an toàn thích hợp để cho phép sử dụng các macro.

    Ngăn chặn việc lưu lại bảng tính với một tên khác

    Bạn có thể thiết lập thuộc tính "Read only" cho bất kỳ một bảng tính nào, bằng cách nhấn OfficeSave, nhấn nút Tools, chọn General Options [E2003: File | Save As | Tools | General Options] và kích hoạt hộp kiểm Read only recommended. Việc này ngăn chận người sử dụng lưu lại những thay đổi trên bảng tính, trừ phi họ lưu lại bảng tính với một tên khác hoặc lưu vào một nơi khác.

    Tuy nhiên, có thể điều bạn muốn là không cho lưu lại bảng tính của bạn với tên khác, cũng không cho lưu vào một nơi khác. Nói cách khác, bạn muốn người khác chỉ có thể lưu lại bảng tính này với chính tên gốc của nó, chứ không được sao chép nó. Điều này đặc biệt hữu dụng khi có nhiều người cùng sử dụng chung một bảng tính, và bạn không muốn trong ổ cứng của mình đầy dẫy những bản sao của bảng tính này, cho dù là với một tên khác, hay ở một thư mục khác.

    Sự kiện Before Save mà tôi sắp nói đến đã có từ thời Excel 97. Đúng như tên gọi của nó, sự kiện này chỉ xuất hiện ngay trước khi bảng tính được lưu, cho phép bạn can thiệp kịp thời việc lưu lại bảng tính, đưa ra một cảnh báo, và không cho Excel lưu bảng tính.

    Trước khi tự thực hiện điều này vào bảng tính, hãy chắn chắn rằng bạn đã lưu lại bảng tính của bạn. Bởi vì việc đưa đoạn code sau đây vào môt bảng tính chưa được lưu, có thể sẽ gây cho bạn nhiều rắc rối.

    Để đưa đoạn code sau vào bảng tính, bạn hãy chọn DevelopeVisual Basic (hoặc nhấn Alt+F11), và nhấp đúp chuột vào mục ThisWorkbook trong khung

    Project Explorer. Nếu trên Ribbon của bạn không có mục Develope, bạn hãy vào trong Excel OptionsPopular, đánh dấu vào tùy chọn Show Develope tab in the Ribbon, rồi nhấn OK. [E2003, nhấn phải chuột vào biểu tượng Excel ở ngay bên trái menu File trên thanh menu, và chọn mục View Code, như minh họa ở hình bên dưới]:

    30-excel1
    Sử dụng Quick access menu (trong Excel 2003) để nhập code áp dụng cho workbook


    Bạn hãy nhập đoạn code sau đây vào cửa sổ VBE. Sau khi nhập xong, nhấn Alt+Q để trở về Excel, rồi lưu lại bảng tính:

     

    PHP Code:
    Private Sub workbook_BeforeSave(ByVal SaveAsUI As Boolean_
    Cancel 
    As Boolean
    )
    Dim lReply As 
    Long
    If SaveAsUI 
    True Then
    lReply 
    MsgBox("Sorry, you are not allowed to save this workbook as another name." 

    "Do you wish to save this workbook?"vbQuestion vbOKCancel
    )
    Cancel = (lReply vbCancel
    )
    If 
    Cancel False Then Me.
    Save
    Cancel 
    True
    End 
    If
    End Sub 

     
    30-excel2


    Thử một tí. Bạn nhấn Ctrl+S (hoặc gọi lệnh Save) xem. Bảng tính của bạn lưu bình thường. Bây giờ bạn nhấn F12 (hoặc gọi lệnh Save as), bạn sẽ gặp một cảnh báo, nói rằng bạn không thể lưu lại bảng tính này dưới bất kỳ một tên nào khác, trừ phi bạn vô hiệu hóa các macro.

    Nói thêm, khi bạn lưu một bảng tính có chứa macro hoặc code trong Excel 2007, bạn sẽ được nhắc nhở rằng bạn phải lưu file ở dạng cho phép macro hoạt động (macro-enable workbook), có phần mở rộng là *.xlsm, chứ không thể lưu ở dạng bình thường (*.xlsx).
    Ngăn chận việc in một bảng tính

    Đôi khi bạn phải rời bàn làm việc đi đâu đó mà quên tắt máy (chuyện này là chuyện thường), cho dù bạn đã làm công việc ngăn chận việc có ai đó chép bảng tính của bạn ra ngoài, như đã nói ở trên, có thể bạn còn lo xa hơn, muốn rằng bảng tính này cũng sẽ không bị in ra khi bạn vắng mặt. Nếu thật sự bạn muốn như vậy, bạn hãy dùng sự kiện Before Print. Hãy nhập đoạn code sau trong cửa sổ VBE:

    PHP Code:
    Private Sub workbook_BeforePrint(Cancel As Boolean)
    Cancel True
    MsgBox 
    "Sorry, you cannot Print from this workbook"vbInformation
    End Sub 
    Nhấn Ctrl+Q để quay về Excel và lưu lại. Từ bây giờ, nếu có ai có muốn ra lệnh in bảng tính này, sẽ không có gì xảy ra. Dòng lệnh MsgBox ở đoạn code trên chỉ là một tùy chọn, nhưng bạn nên sử dụng nó, vì ít nhất thì nó cũng để lại một thông tin gì đó, để người khác sẽ không tưởng lầm rằng máy in của họ bị hư, hoặc là chương trình Excel có lỗi!

    Nếu bạn chỉ muốn ngăn chận in một phần nào đó trong bảng tính, ví dụ không cho in Sheet1 và Sheet2, bạn sử dụng đoạn code sau:
    PHP Code:
    Private Sub workbook_BeforePrint(Cancel As Boolean)
    Select Case ActiveSheet.Name
    Case "Sheet1""Sheet2"
    Cancel True
    MsgBox 
    "Sorry, you cannot print this sheet from this workbook"_
    vbInformation
    End Select
    End Sub 
    Dĩ nhiên bạn có thể thêm vào bất kỳ Sheet nào có trong bảng tính của bạn. Chỉ việc nhập tên của nó vào trong hàng có lệnh Case, và tách biệt Sheet này với Sheet khác bằng dấu phẩy, và nhớ nhập tên Sheet trong một cặp dấu nháy kép. Trong trường hợp bạn chỉ muốn ngăn chận không cho in một Sheet mà thôi, bạn chỉ cần nhập tên của Sheet đó (trong cặp nháy kép) sau chữ Case, và không cần gõ dấu phẩy.
    Ngăn chận việc chèn thêm Sheet vào một bảng tính

    Excel có chức năng Protect Workbook, không cho phép thay đổi cấu trúc của bảng tính như thêm, xóa, di chuyển, hay đổi tên các Sheet. Tuy nhiên, có thể bạn chỉ muốn ngăn chận việc thêm Sheet thôi, còn những việc khác thì vẫn cho phép. Đoạn code sau đây giúp bạn làm việc đó:

    PHP Code:
    Private Sub Workbook_NewSheet(ByVal Sh As Object)
    Application.DisplayAlerts False
    MsgBox 
    "Sorry, you cannot add any more sheets to this workbook"_
    vbInformation
    Sh
    .Delete
    Application
    .DisplayAlerts True
    End Sub 
    Khi có ai đó chèn thêm một Sheet mới vào trong bảng tính, trước tiên Excel sẽ xuất hiện hộp cảnh cáo: "Xin lỗi, bạn không thể thêm bất kỳ Sheet nào vào trong bảng tính này", rồi ngay lập tức, Excel sẽ xóa cái Sheet mới thêm vào khi nút OK trong hộp cảnh báo được nhấn. Công dụng của dòng lệnh Application.DisplayAlerts = False là không hiển thị hộp cảnh báo xác nhận việc xóa một Sheet nào đó trong Excel.

    Một cách khác để ngăn chận việc chèn thêm Sheet vào bảng tính là bạn chọn Review trên thanh Ribbon, chọn lệnh Protect Workbook trong nhóm Changes, rồi chọn lệnh Protect Structure and Windows [E2003: Tools | Protection | Protect Workbook... đánh dấu kiểm vào tùy chọn Structure] và nhấn OK (có thể đặt password nếu thích). Tuy nhiên, như đã nói ở đầu bài, việc này sẽ ngăn chận hết mọi thao tác với các Sheet trong bảng tính.


    Nhắn tin cho tác giả
    Lê Kim Tường @ 20:58 15/07/2009
    Số lượt xem: 3292
    Số lượt thích: 0 người
     
    Gửi ý kiến