2015-09-04 3 views
0

У меня есть документ Excel, в котором перечислены все документы Word, которые должны быть отправлены нашим клиентам. Перед отправкой эти документы должны быть подписаны цифровой подписью, и я должен проверить, что каждый документ подписан, благодаря VBA через документ Excel. Я нашел класс Signature, и у меня есть коллекция Signature благодаря SignatureSet. Но после того, что я потерял, я только в состоянии знать, сколько подписей присутствуют благодаря этой части кода:Проверьте цифровые подписи на документе Word

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

Но то, что я хочу, чтобы имя каждого подписавшего знать, кто Бесполезный Не подписывайте документ. Я видел, что существуют другие классы как SignatureInfo или SignatureSetup, но я не могу понять, как их использовать.

Я уже пробовал метод ShowDetails класса Signature, но это не то, что мне нужно, потому что оно открывает всплывающее окно в документе Word.

+0

Вы пробовали образец кода из файла справки excel? Потому что theres - всплывающее окно, которое не имеет никакого отношения к методу .ShowDetails (; 'if objSignature.IsSigned then Msgbox (Документ подписан со следующими данными:" & objSignature.ShowDetails) Else' Попробуйте его без Msgbox() –

+0

Я пробовал его с MsgBox() и без него, и результаты те же, у меня нет никаких деталей. С MsgBox() он отображает: «Документ подписан со следующими деталями: и ничего более. Когда я пытаюсь написать содержимое метода ShowDetails в ряде моих файлов Excel, он ничего не пишет и более того, всплывающее слово Word по-прежнему присутствует независимо от MsgBox(). – 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 & гектолитров = де-са = X & вед = 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 
Смежные вопросы