2014-01-24 97 views
3

我想使用vb.net檢查一個word文件並檢查文檔中的樣式是否正確。使用VB.NET在Word文檔中檢查字體樣式

我要檢查Word文檔中的這些表述

a.Verdana + 16 pt + Bold + Red

b.Verdana + 12 pt + Bold + Italic + Blue

c.Verdana + 11 pt + Bold + Italic + Brown

d.Arial + 10 pt + Black

我已經試過了,

If objDoc.Range.Font.Name = "Arial" And objDoc.Range.Font.Size = 10 Then 
    If objDoc.Range.Font.Color = WdColor.wdColorBlack Then 
    End If 
     MsgBox("ok") 
    Else 
     MsgBox("not ok") 
End If 

但有了這個代碼,它顯示MSGBOX「OK」只有當整個word文檔包括Arial,10,Black並顯示MSGBOX「不正常」,當它由上述表達式除了Arial,10,Black

所以基本上我需要幫助找出包含所有上述表達式/樣式的相同單詞文檔中的所有表達式。

任何幫助將是非常非常可觀.. PLZ幫我這依然沒能找到解決的辦法..

+0

你能寫任何代碼嗎?我對Word的Interop不熟悉,所以我對你沒有任何建議。但是,如果您在問題中提供了一些代碼並顯示了您所嘗試的內容,則您更有可能從網站上的其他人獲得幫助。 – Harrison

+0

我已更新我的問題,請查看.. –

+0

沒有必要在您的標題中添加「[已更新]」。這裏有一個編輯歷史記錄。每個人都可以看到你的帖子已經更新。 –

回答

4

隨着foolowing代碼,你可以找到的句子,其中的字體風格是不同的。

Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click 
    Dim oDoc As New Word.Document() 
    Dim wapp As New Word.Application() 

    Try 
     oDoc = wapp.Documents.Open(TextBox1.Text & "\" & "TEST.doc") 

     For Each Senetence As Word.Range In oDoc.Sentences 
      For Each Character As Word.Range In Senetence.Characters 
       If Character.Font.Name <> "Verdana" AndAlso Character.Font.Name <> "Arial" Then 
        MsgBox(" Font Name not matching Error Line number " & Senetence.Text) 
        Exit For 
       End If 
      Next 
     Next 
     oDoc.Close() 
    Catch ex As Exception 
     oDoc.Close() 
    End Try 

End Sub 
+0

它有助於找到甚至字體大小不同的句子? @TithiPatel – 2014-03-13 08:47:55

+1

@Winky是的,你可以設置字體大小值,你想設置例如:'如果Character.Font.Name =「Verdana」AndAlso Character.Font.size = 12 Then else msgbox(「Error」&Sentence.Text )'這將讀取句子並檢查上述樣式,如果句子中的任何字符不包含上述樣式,它將顯示該特定句子。 –

相關問題