2017-10-19 2 views
2

現在、以下のオプションを使用してワークシートを保護しています。C#interopを使用してシートを保護するが、選択を許可する方法

dataWorksheet.Protect(result.protectionPassword.ToString(), false, true, false, false, true, true, true, false, false, false, false, false, false, true, true); 

上記のオプションはシートを保護し、保護されたシートの選択を許可しません。

しかし、このような保護は、別のシートのセル値を参照するときに不都合なので、内容(値)を保護したいがセルの選択を許可したい。

Excelでマクロを記録しました。オプションはDrawingObjects:true, contents:true, scenarios:trueでした。私はこのオプションの組み合わせを試みましたが、成功しませんでした。

以下は、interop protectメソッドのドキュメントです。

https://msdn.microsoft.com/en-us/vba/excel-vba/articles/worksheet-protect-method-excel

どのように選択が可能ですが、値が改ざんすることができないような方法でワークシートを保護することができますか?

答えて

0

xlsファイル形式のシート保護オプションは、シートオブジェクト(DrawingObjects:true)、セルコンテンツ(contents:true)、シナリオ(シナリオ:true)のみです。

xlsxファイル形式のシート保護オプションは、柔軟性が高く、必要なセル選択オプションも含まれています。

Worksheet.Protectメソッドには、xlsxファイル形式で使用できる保護オプションがいくつか含まれているようですが、セルの選択は含まれていません。

おそらくにXLSXファイル形式に切り替え、Excelファイルを作成するためにInteropとは別のライブラリを使用する必要があります。

デフォルトの動作では、セルを選択できます。

関連する問題