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

问题描述:

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

+0

+1 - 我喜欢这个问题。对于创建大量宏的人尤其有用! – 2010-02-21 01:51:04

用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