如何以编程方式将证书分配给excel宏

时间:2010-02-03 18:08:12

标签: excel vba excel-vba excel-2007 digital-signature

我开发了一些创建excel宏的代码,每次创建新宏后我想以编程方式对宏进行数字签名。如果有任何方法可以创建新的数字证书并以编程方式将其分配给宏,您能告诉我吗?感谢。

1 个答案:

答案 0 :(得分:2)

使用VBA代码无法执行此操作。我认为你希望这样做的最好方法是通过Win32 API调用来模拟实现这一目标所需的所有步骤。它会马虎,但你可以让它工作。基本上,您可以利用键盘上的快捷键打开所需的窗口和应用程序,并选择正确的证书。

一些示例代码是

Public Declare Function SetFocus Lib "user32" (ByVal hwnd As Long) As Long
Public Declare Function FindWindow Lib "user32" Alias "FindWindowA" _
    (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Public Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" _
    (ByVal hWnd1 As Long, ByVal hWnd2 As Long, _
    ByVal lpsz1 As String, ByVal lpsz2 As String) As Long

Sub SetFocusFormulaBar()
    SetFocus FindWindowEx(FindWindow("XLMAIN", Application.Caption), _
        0&, "EXCEL<", vbNullString)
End Sub

http://www.cpearson.com/excel/FormulaBarShortcut.htm