如(rú)何使用Word中的“宏”來(lái)減少補正
時間: 2017-07-19 13 菏澤開發區冠博知識産權代理有限公司 韓建偉 閱讀(dú)量:

作(zuò)者:韓建偉

親愛的小夥伴,大(dà)家有沒有被專利申請(qǐng)文件(jiàn)的補正所煩惱,本文通過使用宏可(kě)以檢查出一種會導緻補正出現的情況。我呢(ne),隻是一個專利代理(lǐ)人(rén),所以文中涉及的代碼隻是供小夥伴們參考,還(hái)有很多需要改進的地方,大(dà)家共同研究,共同進步。

Word中的宏在哪裡(lǐ)?

在WPS中,點擊"開發工(gōng)具",點擊VB編輯器,将本文中的代碼(完整代碼在文章(zhāng)的最後)拷貝到編輯器中,點擊保存。

在Word中,點擊開發工(gōng)具中的"Visual Basic",在打開的窗(chuāng)口左欄依次點擊"Normal""Microsoft Word 對象""ThisDocument",就(jiù)可(kě)以在右側出現空白(bái)窗(chuāng)口,将文中的代碼拷貝到空白(bái)處即可(kě),點擊保存。如(rú)果沒有"開發工(gōng)具"則打開"Word選項",在"常用"一欄中将"在功能區顯示開發工(gōng)具"選中,點擊确定即可(kě)。

下圖是WPS的圖:

/"/"

關閉VB編輯器,點開宏。

/"/"

發現多了一個"PIC",驚不驚喜?

選擇"PIC",點擊"運行"即可(kě)。

那麽,這個宏是做什麽用的呢(ne)?

我分(fēn)析了一些補正,發現有相(xiàng)當一部分(fēn)的補正是具體(tǐ)實施例中出現了某個圖,但(dàn)是附圖說(shuō)明書(shū)中沒有。例如(rú),具體(tǐ)實施方式中出現了"圖5",但(dàn)是,附圖說(shuō)明中并沒有"圖5"。這個宏就(jiù)是用來(lái)提示具體(tǐ)實施方式中出現了哪些圖在附圖說(shuō)明中沒有的。

原理(lǐ)是什麽?

我簡單介紹一下代碼中的邏輯,抛磚引玉,希望大(dà)家寫出更好的代碼,改正我代碼中一些傻乎乎的地方。

SearchStr1 = "具體(tǐ)實施方式"
SearchStr2 = "附圖說(shuō)明"

For i = 1 To ActiveDocument.Paragraphs.Count
If (InStr(ActiveDocument.Paragraphs(i).Range.Text, SearchStr1) = 0) Then
Else
SslNum = i
Exit For
End If
Next i

For是一個循環,ActiveDocument.Paragraphs.Count是當前文檔中一共有多少個段落,For循環從(cóng)第一段落開始找,直到找到包括SearchStr1的第一段落,SearchStr1是什麽?就(jiù)是"具體(tǐ)實施方式"。說(shuō)簡單點,這段代碼就(jiù)是找到第一個包括"具體(tǐ)實施方式"這幾個字的段落是第幾段,SslNum就(jiù)記錄了這個段落。

For j = 1 To ActiveDocument.Paragraphs.Count
If (InStr(ActiveDocument.Paragraphs(j).Range.Text, SearchStr2) = 0) Then
Else
FtsmNum = j
Exit For
End If
Next j

同理(lǐ),這個段落是爲了找到第一個包括"附圖說(shuō)明"這幾個字的段落是第幾段,FtsmNum就(jiù)記錄了這個段落。

For k = (FtsmNum + 1) To (SslNum - 1)
Ftsm = Ftsm + ActiveDocument.Paragraphs(k).Range.Text
Next k

這一段同樣做了一個循環,把"附圖說(shuō)明"和"具體(tǐ)實施方式"之間的每個段落中的文字都(dōu)賦值給Ftsm。

For g = (SslNum + 1) To ActiveDocument.Paragraphs.Count
Ssl = Ssl + ActiveDocument.Paragraphs(g).Range.Text
Next g

同理(lǐ),這一段把"具體(tǐ)實施方式"到文尾的每個段落中的文字都(dōu)賦值給Ssl。

也就(jiù)是說(shuō),上述兩段把"附圖說(shuō)明"和"具體(tǐ)實施方式"中的文字都(dōu)拷貝到了兩個變量中(這似乎看(kàn)起來(lái)效率并不是很高的做法)。

下面到了關鍵部分(fēn),這部分(fēn)的内容的核心思想是找到具體(tǐ)實施方式中的"圖"字,找到"圖"字之後,找到該字後面的一個到兩個字。

例如(rú),這段話(huà):"需要說(shuō)明的是,本發明的說(shuō)明書(shū)和權利要求書(shū)及上述附圖中的術(shù)語"第一"、"第二"等是用于區别類似的對象,而不必用于描述特定的順序或先後次序。例如(rú),圖1中的第一以及圖2中的第二。應該理(lǐ)解這樣使用的數據在适當情況下可(kě)以互換,以便這裡(lǐ)描述的本發明的實施例能夠以除了在這裡(lǐ)圖示或描述的那些以外的順序實施"。

下面的代碼就(jiù)是隻要找到這段文字中的"圖"字,然後再向後查找1個或2個字符。這段代碼中找的内容是"圖中""圖1""圖2""圖示"以及"圖中的""圖1中""圖2中""圖示或"。找到這個文字之後,判斷哪些是圖的名字,判斷方式很簡單,"圖"字後面第一個字是數字就(jiù)是圖的名字,例如(rú),圖1和圖2,并且,後面第一個字是數字以及後面第二個是字符的也是圖的名字,例如(rú),圖1b。

找到這些圖的名字之後,去(qù)"附圖說(shuō)明"中找這些圖的名字,沒有找到就(jiù)提示。

好,現在看(kàn)代碼:

For r = 1 To 60 /*做一個循環,我估計(jì)具體(tǐ)實施方式中不會有超過60個圖的名字,所以就(jiù)用60,如(rú)果嫌少就(jiù)用100,當然,也可(kě)以通過一個函數讀(dú)取一個究竟有多個少圖字,大(dà)家可(kě)以改一下*/
p = InStr(Ssl, "圖") /*找圖字*/
If Val(Mid(Ssl, p + 1, 1)) > 0 Then/*根據圖字後面是不是有數字判斷是不是圖的名字*/
TuNum1 = Mid(Ssl, p, 2)
TuNum2 = Mid(Ssl, p, 3)

If InStr(Ftsm, TuNum1) = 0 Then/*在附圖說(shuō)明中查找兩字的圖的名字,例如(rú):圖1、圖2等*/
MsgBox "具體(tǐ)實施方式中"" & TuNum1 & ""在附圖說(shuō)明中沒有"/*沒有找到就(jiù)提示*/
End If

If InStr(Ftsm, TuNum2) = 0 And (Val(Mid(Ssl, p + 2, 1)) > 0 Or (Asc(Mid(Ssl, p + 2, 1)) > 64 And Asc(Mid(Ssl, p + 2, 1)) < 123)) Then/*在附圖說(shuō)明中查找三個字的圖的名字,例如(rú):圖1a、圖2b等*/
MsgBox "具體(tǐ)實施方式中"" & TuNum2 & ""在附圖說(shuō)明中沒有"/*沒有找到就(jiù)提示*/
End If
End If
Ssl = Mid(Ssl, (p + 1), (Len(Ssl) - p - 1)) /*找下一個圖字*/
Next r
/*爲了容錯還(hái)可(kě)以加上p是否大(dà)于0的判斷*/

上述代碼中/**/中的内容是注釋。

同理(lǐ),也可(kě)以檢查附圖說(shuō)明中有的圖号在具體(tǐ)實施方式中沒有的。需要說(shuō)明的是,在一些舊版本機(jī)器上運行速度可(kě)能會稍微慢(màn)一點。

通過上述宏可(kě)以查找一些簡單的錯誤,大(dà)家也可(kě)以編寫一些查找其他(tā)錯誤的代碼,一起來(lái)消滅補正!

附完整代碼如(rú)下:

Sub PIC()
Dim SearchStr1
Dim SearchStr2
Dim SslNum
Dim FtsmNum
Dim Ftsm
Dim Ssl
Dim p
Dim TuNum1
Dim TuNum2

SearchStr1 = "具體(tǐ)實施方式"
SearchStr2 = "附圖說(shuō)明"

For i = 1 To ActiveDocument.Paragraphs.Count
If (InStr(ActiveDocument.Paragraphs(i).Range.Text, SearchStr1) = 0) Then
Else
SslNum = i
Exit For
End If
Next i

For j = 1 To ActiveDocument.Paragraphs.Count
If (InStr(ActiveDocument.Paragraphs(j).Range.Text, SearchStr2) = 0) Then
Else
FtsmNum = j
Exit For
End If
Next j

For k = (FtsmNum + 1) To (SslNum - 1)
Ftsm = Ftsm + ActiveDocument.Paragraphs(k).Range.Text
Next k

For g = (SslNum + 1) To ActiveDocument.Paragraphs.Count
Ssl = Ssl + ActiveDocument.Paragraphs(g).Range.Text
Next g

For r = 1 To 100
p = InStr(Ssl, "圖")

If p > 0 Then
If Val(Mid(Ssl, p + 1, 1)) > 0 Then

TuNum1 = Mid(Ssl, p, 2)
TuNum2 = Mid(Ssl, p, 3)

If InStr(Ftsm, TuNum1) = 0 Then

MsgBox "具體(tǐ)實施方式中" & TuNum1 & "在附圖說(shuō)明中沒有"

End If

If Len(Ssl) >= (p + 2) Then

If InStr(Ftsm, TuNum2) = 0 And (Val(Mid(Ssl, p + 2, 1)) > 0 Or (Asc(Mid(Ssl, p + 2, 1)) > 44 And Asc(Mid(Ssl, p + 2, 1)) < 123)) Then

MsgBox "具體(tǐ)實施方式中 " & TuNum2 & " 在附圖說(shuō)明中沒有"

End If

End If

End If
If (Len(Ssl) - p - 1) >= 0 Then
Ssl = Mid(Ssl, (p + 1), (Len(Ssl) - p))
End If
'MsgBox Ssl
Else: Exit For
End If
Next r

Dim Ssl1
Dim Ftsm1

For a = (FtsmNum + 1) To (SslNum - 1)
Ftsm1 = Ftsm1 + ActiveDocument.Paragraphs(a).Range.Text
Next a

For b = (SslNum + 1) To ActiveDocument.Paragraphs.Count
Ssl1 = Ssl1 + ActiveDocument.Paragraphs(b).Range.Text
Next b
'MsgBox Ssl1
'MsgBox Ftsm1

For x = 1 To 100
y = InStr(Ftsm1, "圖")
'MsgBox y

If y > 0 Then
If Val(Mid(Ftsm1, y + 1, 1)) > 0 Then

TuNum11 = Mid(Ftsm1, y, 2)
TuNum22 = Mid(Ftsm1, y, 3)

If InStr(Ssl1, TuNum11) = 0 Then
MsgBox "附圖說(shuō)明中的" & TuNum11 & "在具體(tǐ)實施方式中沒有"
End If

If InStr(Ssl1, TuNum11) > 0 And (Asc(Mid(Ssl1, InStr(Ssl1, TuNum11) + 2, 1)) > 47 And Asc(Mid(Ssl1, InStr(Ssl1, TuNum11) + 2, 1)) < 58) Then
MsgBox "附圖說(shuō)明中的" & TuNum11 & "在具體(tǐ)實施方式中沒有"
End If

If Len(Ftsm1) >= (y + 2) Then

If InStr(Ssl1, TuNum22) = 0 And (Val(Mid(Ftsm1, y + 2, 1)) > 0 Or (Asc(Mid(Ftsm1, y + 2, 1)) > 44 And Asc(Mid(Ftsm1, y + 2, 1)) < 123)) Then

MsgBox "附圖說(shuō)明中的 " & TuNum22 & " 在具體(tǐ)實施方式中沒有"

End If

End If

End If
If (Len(Ftsm1) - y - 1) >= 0 Then
Ftsm1 = Mid(Ftsm1, (y + 1), (Len(Ftsm1) - y))
End If
Else: Exit For
End If
Next x

MsgBox "未檢查出其他(tā)錯誤,檢查完畢! 韓一星出品!"

End Sub

關鍵詞: 專利申請(qǐng)
康信: 菏澤開發區冠博知識産權代理有限公司于1994年(nián)成立, 是一家能夠提供全方位知識産權法律服務的機(jī)構,總部設在北京,在西安、德國(guó)、美國(guó)、日(rì)本設有辦事(shì)處。康信現有員(yuán)工(gōng)400餘名,其中包括經驗豐富的律師(shī)、專利代理(lǐ)人(rén)、商标代理(lǐ)人(rén)和專業技術(shù)人(rén)員(yuán)220餘名。康信公司的PCT申請(qǐng)代理(lǐ)量位居全球第四,中國(guó)區第一。
咨詢電話(huà): 010-56571588
返回頂部圖标 分(fēn)享

關注我們