Có rất nhiều lần khi bạn viết macro khi bạn cần xác định xem người dùng đã thực hiện lựa chọn hay chưa. Có nhiều cách bạn có thể thực hiện việc này trong macro. Đoạn mã sau minh họa một phương pháp khả thi để thực hiện điều này trong VBA. Nó đặt giá trị của cờ, bInSelection, thành True nếu hiện có một vùng chọn. Nếu không, bInSelection được đặt thành False.

Dim bInSelection As Boolean

bInSelection = False If Selection.Type=wdSelectionIP Then     bInselection=True End If

Bạn có thể tự hỏi liệu bạn có thể sử dụng phương pháp kiểm tra xem độ dài của vùng chọn có lớn hơn 0 hay không, như trong phương pháp này:

Dim bInSelection As Boolean

bInSelection = False If Len(Selection) > 0 Then     bInselection=True End If

Cách tiếp cận này sẽ không hoạt động. Lý do là vì khi không có lựa chọn nào được thực hiện (điểm chèn bị thu gọn và chỉ nhấp nháy), Word vẫn trả về độ dài lựa chọn là 1. Điều này hơi trầm trọng hơn vì nó không có ý nghĩa logic. Do đó, bạn cần kiểm tra thuộc tính Type của đối tượng Selection, như trong ví dụ đầu tiên ở trên. Nếu bạn muốn rút ngắn hơn nữa, bạn có thể sử dụng như sau:

Dim bInSelection As Boolean

bInselection=(Selection.Type=wdSelectionIP)

_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 các trang WordTips), tôi đã chuẩn bị một trang đặc biệt bao gồm thông tin hữu ích.

WordTips là nguồn của bạn để đào tạo Microsoft Word hiệu quả về chi phí.

(Microsoft Word là phần mềm xử lý văn bản phổ biến nhất trên thế giới.) Mẹo này (12175) áp dụng cho Microsoft Word 2007, 2010, 2013, 2016, 2019 và Word trong Office 365. Bạn có thể tìm thấy phiên bản của mẹo này cho giao diện menu cũ hơn của Word tại đây: