2009-11-24 41 views
5

Giả sử tôi có một tham chiếu Range trong Word VBA và tôi muốn chia nhỏ phạm vi đó thành các phạm vi nhỏ hơn nơi định dạng (phông chữ, màu sắc, v.v.) giống hệt nhau. Ví dụ, nếu tôi bắt đầu với:MS Word VBA - Xác định mức độ "chạy kiểu"?

Các nhanh nâu fox nhảy qua lười biếng chó.

... sau đó tôi muốn được trở lại 5 dãy, như sau:

Các

nhanh

fox nâu nhảy qua

lười biếng

chó.

Tôi đã hy vọng rằng có một cách tích hợp để thực hiện điều này trong VBA (và thậm chí có bộ nhớ ảo khi sử dụng cơ sở như vậy), nhưng tôi không thể tìm thấy bất kỳ thứ gì.

Tôi có thể làm những gì tôi cần làm trong mã, nhưng một cái gì đó hoạt động nguyên bản sẽ là nhiều (nhiều) nhanh hơn.

[Trong mã, tôi sẽ sử dụng thực tế là - ví dụ - oRange.Font.Bold sẽ trả về "không xác định" nếu phạm vi chứa kết hợp chữ đậm và không in đậm, và vì vậy tôi có thể sử dụng liên tục này để khám phá mức độ đồng nhất các dãy. Nhưng tôi khá chắc chắn rằng Word sẽ làm điều này dưới mui xe, vì vậy nếu ai đó có thể bật mui xe đó cho tôi, tôi sẽ biết ơn.]

EDIT: loại bỏ ví dụ phức tạp hơn mà trình kết xuất HTML StackOverflow không thích.

Trả lời

5

Không thể thực sự thực hiện điều này trong VBA vì OM không hỗ trợ chạy (OOXML thực hiện). Điều tốt nhất bạn có thể làm là lấy wdUnits của wdCharacterFormatting và tạo một vòng lặp để tạo dãy, trích xuất các thuộc tính của chúng và sau đó tiêu diệt chúng cho đến khi vòng lặp kết thúc. Bạn muốn probaby bắt đầu với cái gì đó như:

Dim sel As Selection 
Set sel = ActiveWindow.Selection 
Dim selRange As Range 
Set selRange = selRange.Next(wdCharacterFormatting) 

để có được sự khởi đầu và kết thúc của tập tiếp theo của định dạng, như selRange.Start/selRange.End, cũng như bất kỳ các thuộc tính như selRange.Font.Name/ selRange.Bold.

+0

Tuyệt vời, đó chính xác là những gì tôi đang tìm kiếm. Tôi biết tôi đã nhìn thấy một cái gì đó như thế ở đâu đó. Cảm ơn! –

+0

Ít nhất trong Word 2013, điều này kết thúc phù hợp với thay đổi đoạn văn mà không thực sự thay đổi định dạng ký tự. Tôi đã kết thúc phân tích cú pháp XML của Word để tìm các thuộc tính chạy và đoạn ('' và ''), trả lời câu hỏi của tôi về "tài liệu này có bất kỳ kiểu nào được áp dụng cho nó không?" –

Các vấn đề liên quan