2015-09-04 68 views
0

我有一個Excel文檔,列出了每個必須發送給我們客戶的Word文檔。這些文件必須在發送前進行數字簽名,並且我必須檢查每個文件是否已簽名,這要歸功於VBA通過Excel文件。我已經找到了Signature類,並且能夠通過SignatureSet獲得Signature集合。但在那之後,我輸了,我只能知道有多少簽名存在由於這部分代碼:檢查Word文檔上的數字簽名

Set sigs = WordDoc.Signatures 
MsgBox (sigs.Count) 

但我要的是讓每個簽字人的名字就知道誰沒不簽署文件。我看到其他類如SignatureInfo或SignatureSetup存在,但我無法知道如何使用它們。

我已經嘗試過Signature類的ShowDetails方法,但它不是我需要的,因爲它會在Word文檔中打開一個彈出窗口。

+0

您是否試過了excel幫助文件中的示例代碼?因爲這裏有一個彈出窗口,與.ShowDetails方法無關(;;如果objSignature.IsSigned然後 Msgbox(該文檔已經用以下細節簽名:「&objSignature.ShowDetails) Else'嘗試沒有Msgbox() –

+0

我試過,沒有MsgBox(),結果是一樣的,我沒有任何細節,使用MsgBox()它顯示:「文檔已經用以下細節簽名:」當我嘗試在我的Excel文件的範圍內編寫ShowDetails方法的內容時,它不寫任何東西,而且,無論MsgBox()如何,Word彈出窗口仍然存在。 – Snyler

+0

I找到這個,但沒有相應的vba代碼。https://books.google.de/books?id=4RSAHLMb2DYC&pg=PA345&lpg=PA345&dq=%22who+has+signed%22+a+word+document&source=bl&ots=f-6CPPDcf2&sig= 5e_cHO5DnPUgVl9kwR08BIL2RNE&HL = DE&SA = X&VED = 0CFkQ6AEwB2oVChMI-9J h64fdxwIVBrYUCh2kaAKr#v = onepage&q =%22who%20has%20signed%22%20a%20word%20document&f = false –

回答

0

如果有人有一天有這個問題,我在這裏發佈解決方案。

Sub Test() 

    Dim AppWord As Word.Application 
    Dim Doc As Word.Document 
    Dim Info As SignatureInfo 

    Set AppWord = New Word.Application 
    AppWord.Visible = True 

    Set Doc = AppWord.Documents.Open("C:\MonDocument.doc") 

    Set Info = Doc.Signatures(1).Details 

    MsgBox Info.SignatureText 

End Sub