これが背景情報です。私はExcel2007.xlsmファイルに書き込むアプリを持っており、Visual Studio 2010とともに、C#とExcel 12.0相互運用オブジェクトライブラリを使用しています。セルの値と式を変更したり、フォントを設定したり、フォントスタイル、セルをロックするかどうかなどを設定します。最後に行う必要があるのは、シートの保護を設定して、ロックされたセルの選択を禁止することです。
一般的なシート保護のテストとして、このコードを呼び出そうとすると...
((Excel.Worksheet)excelApp.ThisWorkbook.Sheets[0]).Protect(Password: protectionPassword, AllowFormattingCells: false);
... Exception from HRESULT: 0x800A03EC
COM例外が処理されなかったことを示す例外が発生します。
また、相互運用保護オブジェクトは、上記のオプションを提供しませんが、レビュータブの下の[シートの保護]をクリックすると、そのオプションがExcelで使用可能になります。
では、私の質問です。C#でExcel相互運用機能を使用してAllowSelectLockedCellsをオフにするオプションを使用して、Excelで目的のシートを保護するにはどうすればよいですか?