C#을 사용하여 Office-vba-macros에 디지털 서명 적용
인터넷에서 한동안 검색했지만 성공하지 못한 후에 여기에 묻겠습니다.
인터넷의 일부 게시물에서는 엑셀 애플리케이션 내의 VBA-Macro에 디지털 서명을 적용할 수 없다고 합니다.하지만 제가 발견한 모든 기사들은 꽤 오래된 것들이기 때문에 저는 이제 코드로 이것을 하는 것이 가능하기를 바랍니다.
제 목표는 엑셀 문서를 열고 매크로가 존재한다고 가정했을 때 vba-macros에 디지털 서명을 적용하는 것입니다.
Excel 문서에 VBMacross가 있는지 탐지하기 위해 다음 코드가 있습니다.
string filePath = @"E:\OfficeDocuments\Sample1.xlsm";
object isReadonly = true;
object missing = Missing.Value;
_Application application = new Microsoft.Office.Interop.Excel.Application();
workbook = application.Workbooks.Open(
filePath, missing, isReadonly, missing, missing, missing,
missing, missing, missing, missing, missing, missing,
missing, missing, missing);
bool workbookHasVbProject = workbook.HasVBProject;
그것은 잘 작동합니다.
이제 매크로에 서명하는 데 사용할 인증서를 가져옵니다.
X509Store store = new X509Store(StoreLocation.CurrentUser);
store.Open(OpenFlags.ReadOnly);
X509Certificate2Collection x509Certificate2Collection = store.Certificates;
X509Certificate2Collection certificate2Collection = x509Certificate2Collection.Find(X509FindType.FindBySubjectName, "MyCertificate 01", true);
if (certificate2Collection.Count > 0)
{
X509Certificate2 certificate = certificate2Collection[0];
}
그리고 이제 어떻게 계속해야 할지 모르겠습니다.
시도해 봤습니다.
VBE vbe = application.VBE;
VBProject vbProject = vbe.VBProjects.Item(1);
하지만 매크로에 서명할 기회가 없습니다.
c#-code로 매크로에 서명할 방법이 정말 없나요?
C#은 아니지만 MS 명령줄 도구로 엑셀 파일에 VBA 코드를 서명하는 방법이 있습니다.C# 프로그램에서 관련 명령을 호출합니다.해결된 질문:타임스탬프를 포함한 Excel VBA 프로젝트를 계약할 수 있습니까?
VBA 매크로에 서명하려면 도구 메뉴에서 수동으로 서명하고 디지털 서명을 선택하거나 VBA 코드에서 다음과 같은 방법을 사용할 수 있습니다.모듈을 만들고 추가합니다.
하위 서명Macros() Dim VBComp As VBComp 구성 요소 세트 VBComp = 이 워크북.VBP 프로젝트.VB 구성 요소("Module1") VB Comp."사용자 이름", "사용자 인증서" 종료 하위 항목에 서명
Module1을 서명할 모듈의 이름으로 변경하고, 귀하의 이름과 귀하의 인증서로 변경합니다.
언급URL : https://stackoverflow.com/questions/53205207/apply-digital-signature-to-office-vba-macros-with-c-sharp
'programing' 카테고리의 다른 글
패키지의 "모든 권한 예약" 라이센스.제이손 (0) | 2023.08.13 |
---|---|
함수 포인터의 크기에 대해 보장되는 것은 무엇입니까? (0) | 2023.08.13 |
리눅스에서 파이프는 어떻게 작동합니까? (0) | 2023.08.13 |
Google의 설명에 따라 오류 메시지를 표시하도록 Android EditText 설계 (0) | 2023.08.13 |
PHP 서브스크립트가 문자가 아닌 단어로 끝나는지 확인 (0) | 2023.08.13 |