2009-11-24 21 views
5

Word VBA'da bir Range başvurusu olduğunu ve biçimlendirmenin (yazı tipi, renk vb.) Aynı olduğu daha küçük aralıklara ayırmak istediğimi varsayalım.MS Word VBA - "Stil run" ölçüsünü belirlemek?

hızlı kahverengi tilki tembel köpeğin üstünden atladı: Mesela ben şu şekilde başlıyorsa. aşağıdaki gibi

... sonra geri 5 aralıkları almak isteyeyim:

hızlı

kahverengi tilki

üzerinden atladı tembel

köpek.

VBA'da bunu yapmak için yerleşik bir yol olduğunu umuyordum (hatta böyle bir tesisi kullanmanın hayali bir anı var), ancak hiçbir şey bulamıyorum.

Kodda yapmam gereken şeyi yapabilirim, ancak doğal olarak çalışan bir şey daha çok (çok) daha hızlı olur.

[Kodda, örneğin - oRange.Font.Bold'un "undefined" değerini döndüreceğini gerçeği kullanırım, eğer aralık kalın ve koyu olmayan bir karışım içeriyorsa, ve bu nedenle tek tipin kapsamını bulmak için bunu tekrar tekrar kullanabilirim arasında değişir. Ama Kelime başlık altında bu yapıyor olacak eminim, bu yüzden kimse benim için kaputu pop eğer, memnun olurum]

DÜZENLEME. Kaldırılan daha karmaşık bir örnek olduğunu StackOverflow HTML oluşturucusu Beğenmedi.

cevap

5

OM bunu desteklemediği için bunu VBA'da yapamaz (OOXML, ancak yapar). Muhtemelen yapabileceğiniz en iyi şey, wdCharacterFormatting'in wdUnits değerini almak ve aralıklar oluşturmak, özelliklerini çıkarmak ve döngü bitinceye kadar bunları yok etmek için bir döngü oluşturmaktır. başlangıç ​​ve bitiş selRange.Start/selRange.End gibi biçimlendirme sonraki set için, yanı sıra selRange.Font.Name/ gibi herhangi özelliklerini almak için

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

: Sen probaby gibi bir şey başlardım selRange.Bold.

+0

Mükemmel, tam olarak aradığım şey buydu. Bir yerlerde böyle bir şey gördüğümü biliyordum. Teşekkürler! –

+0

En azından, Word 2013'te, bu, karakter biçimlendirmesini gerçekten değiştirmeyen eşleşen paragraf değişikliklerini tamamlar. "Bu belgenin uygulanmış stilleri var mı?" Sorusunu yanıtlayan run ve paragraf özelliklerini ('' ve '') aramak için Word XML'i ayrıştırmayı bitirdim. –

İlgili konular