• Thứ Năm, 25/12/2003 11:42 (GMT+7)

    Tạo chỉ mục tự động bằng trường của Word

    Làm Quen Với Trường Trong Ms Word

    MS Word cung cấp cho chúng ta hơn 80 trường. Bạn có thể tìm thấy các trường này khi chọn thực đơn Insert/Field. Dòng mã trường hiển thị ở mục Field codes cho bạn thấy đoạn mã sẽ được chèn vào văn bản để tạo ra hiệu ứng cần thiết. Trong văn bản,  khi cho hiển thị mã trường, bạn sẽ thấy dòng mã này được bao bởi cặp dấu móc nhọn {,}.


    Hình 1. Hộp thoại của thực đơn Insert/Field.

    Muốn tìm hiểu chi tiết hơn về các mã trường của Word, bạn có thể kích lên nút nhấn có dấu hỏi ở góc trên bên phải, sau đó kích vào bất kỳ mã trường nào để xem phần giúp đỡ. 

    Thông thường, mỗi mã trường sẽ trả về một kết quả tùy theo chức năng định sẵn. Đa số các trường còn có thêm các khóa chuyển (switchs) để chúng ta có thể định dạng, tùy biến kết quả trả về của trường. Để chọn khóa chuyển cho trường, bạn kích chọn tên trường trong danh sách, sau đó kích vào nút Option ở góc dưới bên trái. Khung hội thoại Field Options sẽ hiện ra để bạn chọn các khóa chuyển. Nếu khi bạn kích chọn tên trường mà nút Option bị mờ (bị vô hiệu hóa) thì trường đó không cần thêm khóa chuyển mà vẫn làm việc hoàn hảo.

    Bảng 1 liệt kê một số khóa chuyển hữu ích thường dùng.

     

    Thao Tác Và Phím Tắt Với Các Mã Trường


    Bảng 1.  Một số khóa chuyển thông dụng.

    Để chèn trường và khóa chuyển, bạn có thể dùng thực đơn Insert/Field như trên. Cách này không được thuận tiện và mất thời gian. Khi đã quen sử dụng các trường, bạn có thể gõ trực tiếp mã trường lúc soạn thảo văn bản. Bảng 2 liệt kê một số phím tắt bạn có thể sử dụng để thao tác nhanh với mã trường.

    Các phím tắt này tương đối đơn giản và dễ nhớ. Chẳng hạn, khi muốn chèn vào một trường mới, bạn gõ Ctrl-F9. Một cặp móc nhọn sẽ hiện ra với nền màu xám. Con trỏ soạn thảo sẽ nằm giữa cặp móc, chờ bạn gõ các mã trường như  SEQ, REF, TOC... cùng với các khóa chuyển thích hợp. Khi đã soạn xong và muốn xem kết quả, bạn chỉ cần ấn F9 ngay vị trí mã trường. Muốn xem lại mã để chỉnh sửa, bạn ấn Shift-F9 ngay vị trí mã trường muốn cập nhật để đảo việc hiển thị mã/kết quả tại đó. Nếu dùng Alt-F9 thì sẽ đảo việc hiển thị mã/kết quả trong toàn bộ văn bản.

     

    Tạo Chỉ Mục Tự Động Với  Mã Trường Seq


    Hình 2. Hộp thoại Field Options để chọn khóa chuyển.

    Việc tạo chỉ mục tự động rất hữu ích khi chúng ta chuyển định dạng văn bản giữa các phiên bản MS Word (97, 2000, 2002...) hoặc trong trường hợp quản lý văn bản lớn bằng master document. Với khóa chuyển \* MergeFormat, các chỉ mục SEQ sẽ tự động cập nhật chính xác khi trộn hoặc mở văn bản.

    SEQ ở đây là viết tắt của SEQUENCE, nghĩa là chuỗi, dãy (số, kí tự...) liên tiếp nhau. Nếu bạn xem mã trường của Word dùng để đánh số thứ tự caption cho các hình ảnh, bảng biểu thì sẽ thấy toàn là SEQ.

    Sử dụng trường SEQ tương đối đơn giản. Gõ Ctrl-F9 để chèn vào mã trường mới, tiếp theo, bạn gõ vào trong cặp dấu móc chuỗi SEQ Cap1.  Khi ấn F9 để xem kết quả, bạn sẽ thấy hiện ra chỉ mục số 1. Như vậy là bạn đã tạo thành công chỉ mục với trường SEQ rồi đó. Tuy nhiên, để định dạng chỉ mục cho thích hợp, chúng ta có thể sử dụng các khóa chuyển đã liệt kê ở phần trên và một số khóa khác trong bảng 3.

    Cùng với những khóa chuyển, trường SEQ giúp chúng ta tạo được các chỉ mục tự động cho các đề mục ở các cấp khác nhau với nhiều định dạng một cách dễ dàng như ở bảng 4.

    Ngoài ra, SEQ còn có một ưu điểm vượt trội chức năng Autonumering của Word là tạo ra được các chuỗi số bất kỳ (chẳng hạn như chuỗi thứ tự có bước tăng không phải là một đơn vị, chuỗi thứ tự giảm dần...). Ví dụ sau cho thấy cách kết hợp các trường để tạo ra chuỗi đếm lùi (bạn hãy đặt giá trị StartNum là con số chặn trên cho chuỗi đó).

     


    Bảng 2.  Phím tắt thao tác với trường mã trường.

    Bảng 3.  Khóa chuyển trong SEQ

    {Set StartNum 6}

    {= {StartNum} - {SEQ Chuoiso} \# 0} => Số 5

    {= {StartNum} - {SEQ Chuoiso} \# 0} => Số 4

    {= {StartNum} - {SEQ Chuoiso} \# 0} => Số 3

    {= {StartNum} - {SEQ Chuoiso} \# 0} => Số 2

    {= {StartNum} - {SEQ Chuoiso} \# 0} => Số 1

     

     

    Tuy nhiên, một khuyết điểm nhỏ của trường SEQ là chuỗi số sẽ không tự động cập nhật khi trật tự bị thay đổi (chẳng hạn khi bạn copy một mục có thứ tự là 6 lên vị trí thứ 2 thì các số thứ tự như 6, 2, 3, 4, ... không tự động cập nhật, do đó bạn sẽ phải chọn tất cả và ấn F9 để cập nhật lại toàn bộ). Một cách giải quyết vấn đề này là chọn thực đơn Tools/Options, trong khung đối thoại Options, chọn tab Print, đánh dấu vào ô Update fields để bảo đảm kết quả khi in ra sẽ cập nhật chính xác các trường. Tuy nhiên, cách này không giúp bạn nhìn thấy được kết quả trong văn bản nên rất khó theo dõi. Đoạn mã VBA sau đây sẽ làm công việc cập nhật trường trong văn bản. Bạn có thể chèn đoạn mã này vào  macro thực thi tự động:

     

    Sub CapnhatFields()

        Dim chuoi

        For Each chuoi

            In ActiveDocument. StoryRanges

            chuoi.Fields.Update

        Next chuoi

    End  Sub

     

     


    Bảng 4.  Đánh chỉ mục với trường SEQ

    Đoạn mã VBA trên sẽ duyệt qua toàn bộ văn bản và cập nhật tất cả trường trong văn bản.  Tuy vậy, nếu văn bản lớn hoặc chứa rất nhiều trường thì công việc này sẽ khá chậm.  Do đó, chúng ta có thể xây dựng một thủ tục cập nhật cho một loại trường nào đó mà thôi.  Đoạn mã sau chỉ cập nhật các trường SEQ với tên trường là  Muc:

     

    Sub Capnhat_SEQ_Muc1()

       Dim mucFld As Word.Field

       For Each mucFld

          In ActiveDocument.Fields

          If mucFld.Type = wdFieldSequence Then

          If InStr(mucFld.Code,“Muc1”) <> 0 Then

                mucFld .Update

           End If

           End If

       Next mucFld

    End Sub

     

    Với những biến tấu nho nhỏ như thế, bạn sẽ có được những chuỗi chỉ mục như ý muốn.  Ngoài SEQ, Word còn rất nhiều trường khác với những tính năng tuyệt vời như TOC, REF, LINK,... Khai thác và sử dụng hiệu quả kho tiện ích này sẽ giúp bạn bớt đi rất nhiều công sức và thời gian xử lý văn bản.

    Chúc các bạn thành công.

    Trần Nguyễn Hoàng Huy

    E-mail: tnhhuy@yahoo.com

     

    Theo dõi những thay đổi không nhìn thấy trong hệ thống

          Bất cứ khi nào bạn chạy thử một phần mềm chia sẻ hay thay đổi cài đặt nào đó trong Windows, thì Registry sẽ bị thay đổi. Tiện ích RegShot của Tianwer giúp bạn có được báo cáo về mọi thay đổi trong máy tính một cách đơn giản. Bạn nhấn 1st shot để chương trình này chụp một bức ảnh “trước” về Registry của bạn. Sau đó, mỗi khi cài đặt xong một trình ứng dụng mới hoặc thực hiện xong một công việc, bạn nhấn 2st shot để chụp bức ảnh “sau” của Registry. Bạn nhấn Compare để RegShot cho biết những điểm khác nhau và đưa ra một báo cáo chi tiết dạng văn bản hoặc HTML. RegShot cũng có thể theo dõi những thay đổi đối với một hay nhiều folder do bạn chọn (như các folder Windows và System). RegShot nhanh chóng, gọn nhẹ, và miễn phí. Bạn có thể tải về tại địa chỉ find.pcworld.com/23421.

     

    ID: A0206_88