Excel 检查Word文档上的数字签名
我有一个Excel文档,列出了必须发送给客户的每个Word文档。这些文档在发送之前必须经过数字签名,我必须检查每个文档是否都经过签名,这要感谢通过Excel文档的VBA。我找到了Signature类,由于SignatureSet,我能够拥有一个签名集。但在那之后,由于这部分代码,我只能知道有多少签名存在:Excel 检查Word文档上的数字签名,excel,vba,Excel,Vba,我有一个Excel文档,列出了必须发送给客户的每个Word文档。这些文档在发送之前必须经过数字签名,我必须检查每个文档是否都经过签名,这要感谢通过Excel文档的VBA。我找到了Signature类,由于SignatureSet,我能够拥有一个签名集。但在那之后,由于这部分代码,我只能知道有多少签名存在: Set sigs = WordDoc.Signatures MsgBox (sigs.Count) 但我想知道的是每个签字人的名字,知道谁没有在文件上签字。我看到存在SignatureInf
Set sigs = WordDoc.Signatures
MsgBox (sigs.Count)
但我想知道的是每个签字人的名字,知道谁没有在文件上签字。我看到存在SignatureInfo或SignatureSetup等其他类,但我不知道如何使用它们
我已经尝试过Signature类的ShowDetails方法,但这不是我需要的,因为它会在Word文档中打开一个弹出窗口。如果有人有此问题,我会在这里发布解决方案
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
您是否尝试过excel帮助文件中的示例代码?因为其中有一个与.ShowDetails方法无关的弹出窗口(;
如果objSignature.IsSigned,则为Msgbox(文档已使用以下详细信息签名:“&objSignature.ShowDetails”),否则
在不使用Msgbox()的情况下尝试结果是一样的,我没有任何详细信息。使用MsgBox()它会显示:“该文档已使用以下详细信息签名:“仅此而已。当我尝试在Excel文件的某个范围内写入ShowDetails方法的内容时,它也不会写入任何内容。此外,无论MsgBox()如何,弹出框这个词仍然存在。我找到了它,但没有相应的vba代码。您发布的链接中的“检查数字证书”部分解释了如何“手动”做ShowDetails方法所做的。我要找的是,在没有任何弹出窗口的情况下,知道谁在文档上签名,查看文档中存在的每个签名。我非常确定签名类中的一个方法可以完成这项工作,但我不知道如何做以及必须使用哪一个。我认为我应该使用SuggestedSigner方法d(获取或设置文档的主要签名者的名称。),但我不知道如何实例化SignatureSetup对象。