Tìm đường dài (Microsoft Word)
Lori đã yêu cầu một cách dễ dàng để xác định xem một đoạn văn có “tràn ra” nhiều hơn một dòng hay không. Có vẻ như khi Lori đang hợp nhất các nhãn, nếu một dòng (đoạn) chạy qua và kết thúc với dòng tiếp theo trên nhãn, cô ấy muốn giảm kích thước điểm trên văn bản để dòng chỉ chiếm như vậy — một dòng duy nhất.
Gói dòng là một tính năng thời gian thực (và thời gian in) của Word. Word thực hiện các phép tính nội bộ liên tục để tìm ra nội dung hiển thị trên màn hình hoặc nội dung cần in trên giấy. Nơi văn bản bao bọc từ dòng này sang dòng khác thực sự không có gì để đánh dấu điểm bọc (như có trong một số bộ xử lý văn bản khác), vì vậy thực sự không có gì để tìm kiếm hoặc tìm. Ngoài ra, tính năng Tìm của Word không có tùy chọn (đặc biệt hoặc cách khác) để tìm kiếm nội dung và cho biết nội dung được tìm thấy trải qua bao nhiêu dòng.
Có thể thực hiện một chuỗi dài các thao tác tìm kiếm và thay thế để cố gắng “dò tìm” và tìm ra những dòng quá dài. Ví dụ: bạn có thể làm theo các bước chung sau:
-
Thay thế tất cả các khoảng trắng trong tài liệu đã hợp nhất bằng một số tổ hợp ký tự chuẩn, chẳng hạn như [s].
-
Thay thế tất cả các dấu gạch ngang trong tài liệu đã hợp nhất bằng một số tổ hợp ký tự chuẩn, chẳng hạn như [d].
-
Bây giờ, tất cả các đoạn văn trong tài liệu bao gồm một từ chạy cùng nhau.
-
Chạy công cụ gạch nối để gạch nối tài liệu theo cách thủ công.
-
Bất cứ khi nào Word tìm thấy một dòng cần được gạch nối, bạn có thể giảm kích thước điểm của dòng đó.
-
Làm lại các thay thế của bạn, trả [s] và [d] về dấu cách và dấu gạch ngang bình thường.
Điều này nghe có vẻ hơi phức tạp, và đúng như vậy. Nhưng nó sẽ hoạt động khá tốt, trừ khi bạn muốn viết macro. (Tin hay không tùy bạn, ngay cả khi bạn không thường xuyên sử dụng macro, thì macro cụ thể này sẽ dễ dàng hơn nhiều so với việc thực hiện lặp đi lặp lại các bước trên.)
Khi cố gắng quyết định cách kết hợp macro lại với nhau, một khám phá đáng buồn đang chờ chúng ta trong VBA. Những người dùng Word lâu năm sẽ nhớ rằng khi bạn sử dụng tính năng Word Count trong Word, chương trình sẽ hiển thị cho bạn số dòng trong tài liệu của bạn. Điều này ngụ ý rằng bạn có thể sử dụng VBA để xác định số dòng trong một lựa chọn. Rất tiếc, thuộc tính ReadabilitySt Statistics trong VBA không trả về thống kê cho số dòng. Điều đó có nghĩa là thống kê hiển thị trong hộp thoại Đếm Từ được tính toán nội bộ khi cần thiết.
Giải pháp rõ ràng duy nhất là dựa vào thuộc tính Thông tin cho wdFirstCharacterLineNumber, thuộc tính này trả về số dòng cho ký tự đầu tiên trong một lựa chọn. Thật không may, không có wdLastCharacterLineNumber được chỉ định trong VBA, vì vậy macro phải thực hiện lựa chọn cho ký tự đầu tiên trong đoạn, so sánh nó với lựa chọn của ký tự cuối cùng trong đoạn và xem liệu hai số dòng giống nhau có được trả về hay không. Nếu không, thì kích thước điểm của đoạn văn có thể được giảm bớt và thực hiện một phép tính khác.
Macro VBA sau, ParaforceOneLine, chỉ thực hiện quá trình này. Nó kiểm tra từng đoạn trong một tài liệu và nếu bất kỳ đoạn văn nào cho trước chạy trên một dòng, kích thước điểm của đoạn cụ thể đó sẽ được giảm xuống cho đến khi nó có thể vừa trên một dòng.
Sub ParaForceOneLine() Dim objPara As Paragraph Const ChangeSize = 0.5 For Each lobjPara In ActiveDocument.Paragraphs With objPara.Range While .Information(wdFirstCharacterLineNumber) <> _ .Characters(Len(.Text)).Information(wdFirstCharacterLineNumber) .Font.Size = .Font.Size — ChangeSize Wend End With Next objPara End Sub
_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 (9954) á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: