Node.js経由でC++を使用して、VBAコードプロジェクトにデジタル署名を付与する方法

Node.js経由で証明書を使ってVBAコードプロジェクトにデジタル署名を付与する

以下のサンプルコードは、VbaProject.sign(DigitalSignature)メソッドの使用例です。入力ファイルと出力ファイルの例も示します。任意のExcelファイルと任意の証明書を使用してテストできます。

  • サンプルのExcelファイル(5115028.xlsm)
  • サンプルpfxファイル(5115039.pfx)でデジタル署名を作成します。このコードを実行するためにこのファイルをコンピューターにインストールしてください。パスワードは1234です。
  • サンプルコードによって生成された出力Excelファイル(5115029.xlsm)
const fs = require("fs");
const path = require("path");
const AsposeCells = require("aspose.cells.node");

// Set up paths
const sourceDir = path.join(__dirname, "data");
const outputDir = path.join(__dirname, "output");
const pfxPath = path.join(sourceDir, "sampleDigitallySignVbaProjectWithCertificate.pfx");
const workbookPath = path.join(sourceDir, "sampleDigitallySignVbaProjectWithCertificate.xlsm");

// Set Digital Signature
const password = "1234";
const comment = "Signing Digital Signature using Aspose.Cells";
const digitalSignature = new AsposeCells.DigitalSignature(fs.readFileSync(pfxPath), password, comment, new Date());

// Create workbook object from excel file
const workbook = new AsposeCells.Workbook(workbookPath);

// Sign VBA Code Project with Digital Signature
workbook.getVbaProject().sign(digitalSignature);

// Save the workbook
workbook.save(path.join(outputDir, "outputDigitallySignVbaProjectWithCertificate.xlsm"));