VBAコードのデジタル署名が有効かどうかを確認する
Contents
[
Hide
]
Aspose.Cellsを使用して、VBAコードのデジタル署名が有効かどうかを確認することができます。Workbook.VbaProject.IsValidSignedプロパティを使用すると、署名が有効であればtrueを返し、それ以外の場合はfalseを返します。VBAコードを変更すると、そのデジタル署名は無効になります。
C#でVBAコードのデジタル署名が有効かどうかを確認する
提供されたリンクからサンプルのExcelファイルをダウンロードし、このプロパティの使用方法を示すコードを実演しています。同じExcelファイルには有効な署名がありますが、VBAコードを変更してワークブックを保存した後、再チェックすると署名が無効になることが分かります。
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET | |
// The path to the documents directory. | |
string dataDir = RunExamples.GetDataDir(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); | |
Workbook workbook = new Workbook(dataDir + "sampleVBAProjectSigned.xlsm"); | |
// Signature is valid | |
Console.WriteLine("Is VBA Code Project Valid Signed: " + workbook.VbaProject.IsValidSigned); | |
// Modify the VBA Code, save the workbook then reload | |
// VBA Code Signature will now be invalid | |
string code = workbook.VbaProject.Modules[1].Codes; | |
code = code.Replace("Welcome to Aspose", "Welcome to Aspose.Cells"); | |
workbook.VbaProject.Modules[1].Codes = code; | |
// Save | |
workbook.Save(dataDir + "output_out.xlsm"); | |
// Reload | |
workbook = new Workbook(dataDir + "output_out.xlsm"); | |
// Now the signature is invalid | |
Console.WriteLine("Is VBA Code Project Valid Signed: " + workbook.VbaProject.IsValidSigned); |