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