Làm cho Macro chạy nhanh hơn (Microsoft Word)
Macro, khi chúng chạy đúng, có thể giúp cuộc sống của chúng ta dễ dàng hơn. (Nếu chúng không chạy đúng, cuộc sống chắc chắn không dễ dàng.) Nếu bạn có một macro thực hiện rất nhiều việc cho bạn, bạn có thể quan tâm đến việc cố gắng làm cho nó chạy nhanh hơn.
Tất nhiên, nhiệm vụ đầu tiên cần làm là kiểm tra macro và xem liệu các thuật toán của bạn (cách bạn quyết định thực hiện mọi thứ) có hiệu quả như chúng có thể hay không. Khi bạn đã hài lòng với chúng, bạn cũng có thể tăng tốc macro của mình bằng cách chỉ cần đặt nhiều câu lệnh trên cùng một dòng. Hãy xem xét macro đơn giản sau, tìm thấy sự xuất hiện trước đó của một cái gì đó trong tài liệu:
Sub PrevFind() With Selection.Find .ClearFormatting .Forward = False .Wrap = wdFindAsk .Execute End With End Sub
Macro này rất đơn giản. Khi bạn lưu macro, các câu lệnh mà nó chứa được phân tích cú pháp thành các mã thông báo 3 byte có thể được VBA chạy hiệu quả hơn. (Bạn không bao giờ thấy mã thông báo; bạn chỉ thấy ngôn ngữ macro tương đương với mã thông báo.) Khi macro đang chạy, bộ xử lý lệnh VBA lấy từng dòng một và thực thi tất cả các mã thông báo trên dòng đó. Do đó, ở phần trên có tám dòng được bộ xử lý tìm nạp và thực thi riêng.
Bây giờ hãy xem xét phiên bản sau của cùng một macro:
Sub PrevFind() With Selection.Find .ClearFormatting: .Forward = False: .Wrap = wdFindAsk: .Execute End With: End Sub
Phiên bản này có vẻ ngắn hơn nhiều vì các dòng riêng lẻ đã được nối và phân tách bằng dấu hai chấm. Điều này làm giảm khả năng đọc của macro, nhưng nó làm tăng tốc độ mà nó sẽ thực thi. Tại sao?
Bởi vì bộ xử lý lệnh VBA vẫn lấy một dòng tại một thời điểm để xử lý. Trong trường hợp này, chỉ có bốn dòng để lấy. Ít “thời gian lấy” hơn có nghĩa là thực thi nhanh hơn. Dòng thứ ba của macro này, được sử dụng để chiếm bốn dòng, hiện được xử lý như một dòng duy nhất.
Đặt nhiều câu lệnh trên cùng một dòng sẽ làm giảm khả năng đọc của macro. Tuy nhiên, tùy thuộc vào nhu cầu của bạn, đây có thể là một sự cân bằng hợp lý cho việc tăng tốc độ mà bạn có thể đạt được. Bạn sẽ cần thử kỹ thuật này trong macro của riêng mình để xem nó có phù hợp với bạn không.
_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 (1640) áp dụng cho Microsoft Word 97, 2000, 2002 và 2003.