Как назначить сертификаты для макросов Excel программно - PullRequest
3 голосов
/ 03 февраля 2010

Я разработал некоторый код, который создает макросы Excel, и каждый раз после создания нового макроса я хочу программно подписать макрос. Можете ли вы сообщить мне, есть ли способ, с помощью которого я могу создавать новые цифровые сертификаты и назначать их макросам программно. Спасибо.

1 Ответ

2 голосов
/ 09 февраля 2010

Невозможно сделать это с кодом 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

...