• Chủ Nhật, 28/11/2010 00:32 (GMT+7)

    Phím tắt cho kiểu trong Microsoft Word

    Lượt xem 3968
    Đánh giá

    Câu hỏi :

    Tôi tạo phím tắt cho một kiểu (style) trong Word, nhưng Style miêu tả chuỗi tiếng Việt viết hoa theo kiểu Unicode, vì thế mỗi khi gọi kiểu style này (ví dụ dùng phím tắt là Alt-H) tôi muốn phím Caps Lock tự động được bật lên để nhập chuỗi chữ hoa dễ dàng, tương tự tôi muốn dùng tổ hợp phím khác (ví dụ phím tắt là Alt-T) để gọi style khác làm phím Caps Lock tự động tắt đi.



    Trả lời :

    Trong Word, Style là phương tiện miêu tả 1 chuỗi các thao tác chỉnh dạng hình thức cho 1 đoạn văn, mỗi style được nhận dạng thông qua 1 tên nhận dạng và có thể được kích hoạt bằng 1 trong 2 cách: hoặc chọn style trong Listbox hoặc chọn style bằng tổ hợp phím tắt (ví dụ là Alt-H). Lưu ý rằng style chỉ chứa các thao tác chỉnh dạng văn bản chứ không chứa thao tác gõ phím dữ liệu/điều khiển, do đó bạn không thể đưa hoạt động gõ phím Capslock vào style được. Để giải quyết yêu cầu của bạn chúng tôi giới thiệu phương pháp sau: 

    - Kết hợp tổ hợp phím nóng (Alt-H) với macro (thí dụ tên là Chuhoa), macro này là 1 thủ tục được viết bằng ngôn ngữ VBA, nó sẽ kiểm tra trạng thái Caps Lock và bật lên nếu cần thiết rồi kích hoạt style cần dùng.

    - Kết hợp tổ hợp phím nóng khác (Alt-T) với macro (thí dụ tên là Chuthuong), macro này là 1 thủ tục được viết bằng ngôn ngữ VBA, nó sẽ kiểm tra trạng thái Caps Lock và tắt đi nếu cần thiết rồi kích hoạt style cần dùng.

    Qui trình định nghĩa 2 macro Chuhoa và Chuthuong như sau:

    1. Chạy Word, mở tài liệu Word cần soạn thảo.

    2. Định nghĩa 2 style theo yêu cầu: style có tên là SChuhoa miêu tả các thao tác chỉnh dạng đoạn văn chữ hoa theo yêu cầu riêng của bạn, style có tên là SChuthuong miêu tả các thao tác chỉnh dạng đoạn văn chữ thường theo yêu cầu riêng của bạn.

    3. Kết hợp tổ hợp phím nóng (Alt-H) với macro Chuhoa: chọn menu Tools.Macro.Record New Macro để hiển thị cửa sổ "New Macro", nhập tên macro là Chuhoa, ấn chuột vào button Keyboard, ấn tổ hợp phím Alt-H vào textbox "new shorcut key" rồi ấn button Assign để gán tổ hợp phím tắt với macro Chuhoa. Cuối cùng ấn button "Stop Record" để tắt hoạt động ghi macro.

    4. kết hợp tổ hợp phím nóng (Alt-T) với macro Chuthuong: chọn menu Tools.Macro.Record New Macro để hiển thị cửa sổ "New Macro", nhập tên macro là Chuthuong, ấn chuột vào button Keyboard, ấn tổ hợp phím Alt-T vào textbox "new shorcut key" rồi ấn button Assign để gán tổ hợp phím tắt với macro Chuthuong. Cuối cùng ấn button "Stop Record" để tắt hoạt động ghi macro.

    5. chọn menu Tools.Macro.Macros để hiển thị cửa sổ Macro, chọn macro Chuhoa trong danh sách, chọn button Edit để hiển thị cửa sổ soạn code cho macro Chuhoa rồi soạn code VBA cho 2 macro như sau:

    'khai báo các hàm API cần dùng
    Private Declare Sub keybd_event Lib "user32" _
    (ByVal bVk As Byte, ByVal bScan As Byte, _
    ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
    Private Declare Function GetKeyboardState Lib "user32" _
    (pbKeyState As Byte) As Long

    'khai báo các hằng cần dùng
    Const VK_CAPITAL = &H14
    Const KEYEVENTF_EXTENDEDKEY = &H1
    Const KEYEVENTF_KEYUP = &H2

    'khai báo biến cần dùng
    Dim keys(0 To 255) As Byte

    'Macro Chuthuong
    Sub Chuthuong()
    'kích hoạt style SChuthuong
    Selection.Style = ActiveDocument.Styles("SChuthuong")
    'đọc trạng thái các phím vào danh sách
    GetKeyboardState keys(0)
    'xác định trạng thái Capslock
    FCaps = keys(VK_CAPITAL) And 1
    'kiểm tra xem có Caplock ?
    If FCaps = 1 Then 'nếu có thì tắt đi
    'mô phỏng việc ấn phím Capslock
    keybd_event VK_CAPITAL, &H45, KEYEVENTF_EXTENDEDKEY Or 0, 0
    'mô phỏng việc thả phím Capslock
    keybd_event VK_CAPITAL, &H45, KEYEVENTF_EXTENDEDKEY Or KEYEVENTF_KEYUP, 0
    End If
    End Sub

    'Macro Chuhoa
    Sub Chuhoa()
    'kích hoạt style SChuhoa
    Selection.Style = ActiveDocument.Styles("SChuhoa")
    'đọc trạng thái các phím vào danh sách
    GetKeyboardState keys(0)
    'xác định trạng thái Capslock
    FCaps = keys(VK_CAPITAL) And 1
    'kiểm tra xem có Caplock ?
    If FCaps = 0 Then 'nếu không có thì bật lên
    'mô phỏng việc ấn phím Capslock
    keybd_event VK_CAPITAL, &H45, KEYEVENTF_EXTENDEDKEY Or 0, 0
    'mô phỏng việc thả phím Capslock
    keybd_event VK_CAPITAL, &H45, KEYEVENTF_EXTENDEDKEY Or KEYEVENTF_KEYUP, 0
    End If
    End Sub

    6. Sau khi viết xong 2 macro, chọn menu File.Close and Return... để quay về cửa sổ soạn thảo tài liệu Word bình thường. Thử dời chuột về đoạn văn bản cần viết hoa rồi ấn tổ hợp phím tắt Alt-H để kích hoạt style Chuhoa và chuyển về chế độ bật Caps Lock rồi bắt đầu nhập liệu chữ hoa. Tương tự, thử dời chuột về đoạn văn bản cần viết thường rồi ấn tổ hợp phím tắt Alt-T để kích hoạt style Chuthuong và chuyển về chế độ tắt Caps Lock rồi bắt đầu nhập liệu chữ thường.

    Ý kiến phản hồi và bình luận      Gởi ý kiến của bạn ?
    Chuyên mục: Ứng dụng văn phòng