GroupDocs.Signature for .NET を使用して Excel スプレッドシートとその VBA プロジェクトにデジタル署名する

今日のデジタル時代において、Excelファイルの信頼性を確保することは極めて重要です。財務スプレッドシートの管理でもプロジェクト計画の管理でも、デジタル署名を追加することで不正な変更を防ぐことができます。このチュートリアルでは、スプレッドシートとVBAプロジェクトの両方にデジタル署名を適用する方法について説明します。 .NET 用 GroupDocs.Signature

学習内容:

  • GroupDocs.Signature for .NET をセットアップします。
  • スプレッドシート内の VBA プロジェクトのみにデジタル署名します。
  • スプレッドシート ドキュメントとその VBA プロジェクトの両方に署名します。
  • パフォーマンスとセキュリティを考慮して実装を最適化します。

これらの機能を実装する前に、前提条件から始めましょう。

前提条件

始める前に、次のものを用意してください。

  • .NET フレームワーク (バージョン 4.6.1 以降) がシステムにインストールされています。
  • C# プログラミングの基本的な理解。
  • 署名目的で PFX 形式のデジタル証明書にアクセスします。

環境設定

GroupDocs.Signature for .NET を使って開発環境を準備しましょう。以下の方法でインストールできます。

.NET CLI の使用:

dotnet add package GroupDocs.Signature

パッケージマネージャーの使用:

Install-Package GroupDocs.Signature

または、 NuGet パッケージ マネージャー UI 「GroupDocs.Signature」を検索してインストールします。

ライセンス取得

GroupDocs.Signatureの全機能を試すには、無料トライアルまたは一時ライセンスをご購入ください。 購入ページ ライセンスの取得の詳細については、こちらをご覧ください。

GroupDocs.Signature を .NET 用にセットアップする

次の設定で、アプリケーション内の GroupDocs.Signature ライブラリを初期化します。

using System;
using GroupDocs.Signature;

// ドキュメントパスでSignatureインスタンスを初期化する
Signature signature = new Signature("YOUR_DOCUMENT_DIRECTORY/SAMPLE_SPREADSHEET_MACRO_SUPPORT.xlsx");

実装ガイド

VBA プロジェクトのみに署名する

概要

この機能を使用すると、Excel スプレッドシート内の Visual Basic for Applications (VBA) プロジェクトのみに署名できるため、ドキュメント全体に署名しなくてもマクロ コードが変更されないことが保証されます。

ステップバイステップの実装

1. デジタル署名オプションを設定する

using GroupDocs.Signature.Options;
using System.IO;

string certificatePath = "YOUR_DOCUMENT_DIRECTORY/CertificatePfx.pfx";
string password = "1234567890";

// 最初に証明書なしで DigitalSignOptions のインスタンスを作成します。
DigitalSignOptions signOptions = new DigitalSignOptions();

2. VBAプロジェクトの署名を構成する

using GroupDocs.Signature.Domain;

// VBA プロジェクトのみにデジタル署名するための拡張機能を追加する
DigitalVBA digitalVBA = new DigitalVBA(certificatePath, password)
{
    SignOnlyVBAProject = true,
    Comments = "VBA Comment"
};

signOptions.Extensions.Add(digitalVBA);

3. 署名を適用して保存する

string outputFilePath = Path.Combine("YOUR_OUTPUT_DIRECTORY", "SignSpreadsheetsVBAProject", "OnlyVBAProject.xlsm");

// 文書に署名を適用する
signature.Sign(outputFilePath, signOptions);

スプレッドシートドキュメントとVBAプロジェクトの両方に署名する

概要

この機能により、署名プロセスが拡張され、スプレッドシート ドキュメントと埋め込まれた VBA プロジェクトの両方が含まれるようになり、Excel ファイルのコンテンツが包括的に保護されます。

ステップバイステップの実装

1. デジタル署名オプションを設定する

// 完全なドキュメント署名のために、証明書を使用してデジタル署名オプションを設定します。
DigitalSignOptions signOptions = new DigitalSignOptions(certificatePath)
{
    Signature = { Comments = "Comment" },
    Password = password
};

2. VBAプロジェクト署名拡張機能を追加する

// ドキュメントと一緒にVBAプロジェクトに署名する
digitalVBA.Comments = "VBA Comment";
signOptions.Extensions.Add(digitalVBA);

3. 結合署名を適用して保存する

string outputFilePath = Path.Combine("YOUR_OUTPUT_DIRECTORY", "SignSpreadsheetsVBAProject", "DocumentAndVBAProject.xlsm");

// ドキュメントと VBA プロジェクトの両方に署名し、outputFilePath として保存します。
signature.Sign(outputFilePath, signOptions);

トラブルシューティングのヒント

  • 証明書パスが正しく、アクセス可能であることを確認してください。
  • 認証エラーを回避するために、デジタル証明書のパスワードを確認してください。

実用的な応用

  1. 財務報告監査やレポートで使用されるスプレッドシートに署名して財務データを保護します。
  2. プロジェクト管理マクロに埋め込まれたプロジェクトのタイムラインとリソース割り当てを保護します。
  3. 法的文書Excel ファイルに保存されている法的契約をデジタルで検証することで、コンプライアンスを確保します。
  4. 人事業務デジタル署名を使用して従業員の記録と業績評価を保護します。

パフォーマンスに関する考慮事項

  • 特に大きなドキュメントを扱う場合には、メモリを効果的に管理してアプリケーションを最適化します。
  • 操作中にメイン スレッドがブロックされないようにするには、非同期署名プロセスを使用します。
  • 最新のパフォーマンス向上を活用するには、GroupDocs.Signature for .NET を定期的に更新してください。

結論

このガイドに従うことで、スプレッドシート文書とそのVBAプロジェクトに安全に署名する方法を学びました。 .NET 用 GroupDocs.Signatureこれらの機能により、重要なデータを扱う組織にとって不可欠な、ドキュメントのセキュリティと整合性が強化されます。

さらに詳しく調べるには、GroupDocs.Signature を他のシステムと統合することや、タイムスタンプや高度な暗号化オプションなどの追加機能を調べることを検討してください。

FAQセクション

  1. デジタル証明書とは何ですか?
    • デジタル証明書は署名者の身元を確認し、文書の信頼性を保証します。
  2. VBA プロジェクトなしでドキュメントに署名できますか?
    • はい、GroupDocs.Signature for .NET を使用して任意の Excel ファイルにデジタル署名できます。
  3. VBA プロジェクトのみに署名するとどのようなメリットがありますか?
    • ドキュメントの内容は編集可能なまま、マクロ コードが不正な変更から保護されます。
  4. GroupDocs.Signature と互換性のある .NET のバージョンは何ですか?
    • GroupDocs.Signature は、.NET Framework 4.6.1 以降をサポートしています。
  5. 署名できる文書の数に制限はありますか?
    • いいえ、アプリケーションで必要な数のドキュメントにデジタル署名できます。

リソース

今すぐ安全なドキュメント署名への旅に乗り出し、GroupDocs.Signature for .NET の可能性を最大限に活用しましょう。