2012-03-08 17 views
1

Excelブックをロックしてセルを選択できない、またはワークブックの情報を変更できない方法がありますか?基本的に私のプログラムがエクスポートモードにあるとき、私はユーザーがデータを変更したり、任意のセルを選択できるようにしたくありません。C#のVSTO用Excelワークブックをロックする

答えて

2

多分この方法:Locking worksheets

コードは、MSDNで与えスニペット:

Globals.Sheet1.Protect(getPasswordFromUser, 
missing, missing, missing, missing, missing, missing, missing, missing, 
missing, missing, missing, missing, true, missing, missing); 

あなたはMSDNを想定しているので、あなたは、このような持ち、Globals.Sheet1を使用せずに同じことを行うことができるはずシート。それをプログラム的に行うことが可能でなければなりません。

編集:ワークブック自体をロックしていますが、ワークブックおよびワークシートの両方をロックするように見える: Workbook locking

this.Protect(getPasswordFromUser, missing, missing); 

パスワードがoptionnalです:

保護し、プロテクト解除の方法Microsoft Office Excel 2003ブックを保護して、ユーザーがワークシートを追加または削除できないようにしたり、ブックの保護を再度解除したりすることができます。必要に応じてパスワードを指定したり、構造体を保護する(ユーザーがシートを移動できないようにする)かどうかを指定したり、ワークブックのウィンドウを保護するかどうかを指定することができます。

ブックを保護してもユーザーがセルを編集できなくなることはありません。データを保護するには、ワークシートを保護する必要があります。詳細については、「方法:ワークシートを保護する」を参照してください。ここ

別のリンクCommon tasks in Excel

+2

.NET 4.0であるあなたは、すべての「missings」を必要としないので、それを作る... geesh ...倍になります! :) +1 – Jetti

+0

しかし、私はこれを見ましたが、私はあなたがこれを使ってできることは明らかにあなたがセルをアクティブにするのを防ぐことができるとは思わなかった。 – scifirocket

+0

ええ、[]内のすべてのパラメータはオプションです。そして、細胞の活性化に関して、私は知らない。セルのアクティブ化を本当に防止する必要がある場合は、スレッド固有のフックを使用するか、VSTOで回避策を試してみてください。しかし、私は実際に結果が最終的には分からない。 – squelos

関連する問題