3

我开发了一些创建 excel 宏的代码,每次创建新宏后,我都想以编程方式对宏进行数字签名。你能告诉我是否有任何方法可以创建新的数字证书并以编程方式将它们分配给宏。谢谢。

4

1 回答 1

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

于 2010-02-09T17:30:02.447 回答