@IT会議室は、ITエンジニアに特化した質問・回答コミュニティ「QA@IT」に生まれ変わりました。ぜひご利用ください。
- PR -

C# Excelのセルを選択できないようにしたい

投稿者投稿内容
mima
会議室デビュー日: 2006/02/23
投稿数: 9
投稿日時: 2006-02-23 21:54

Worksheet.EnableSelectionプロパティに値を設定しても、
反映がされないようなのですが・・・?
その前にProtectメソッドは効いて効いているようなのですが。。

http://msdn2.microsoft.com/ja-jp/library/microsoft.office.tools.excel.worksheet.enableselection.aspx
上記を参考に、下記のようにしていますが、うまくいきません。
アドバイスお願いします。。

wrkSheet.Protect(
"pass", Type.Missing, Type.Missing, Type.Missing,
Type.Missing, Type.Missing, Type.Missing, Type.Missing,
Type.Missing, Type.Missing, Type.Missing, Type.Missing,
Type.Missing, Type.Missing, Type.Missing, Type.Missing);

wrkSheet.EnableSelection = Excel.XlEnableSelection.xlUnlockedCells;
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-02-24 02:41
Protect は、シートを保護していないと無視されます。
そのため、EnableSelection に xlUnlockedCells を設定していても無視されるわけです。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
mima
会議室デビュー日: 2006/02/23
投稿数: 9
投稿日時: 2006-02-24 13:03
返信ありがとうございます。

Protectがシートを保護するんじゃないんですか?
出来上がったものも、保護はされているようなんですが、
EnableSelectionだけが効いてないんだと思っていたんですが。

もう一度、シートの保護について調べた見ます。

ありがとうございました。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-02-24 13:50
引用:

mimaさんの書き込み (2006-02-24 13:03) より:

もう一度、シートの保護について調べた見ます。


一応、セルの保護が「ロック」になっていることも確認してください。
とりあえず、COM Interop レベルで実験したところ有効でした > EnableSelection

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
mima
会議室デビュー日: 2006/02/23
投稿数: 9
投稿日時: 2006-02-24 14:10
ロックにはなっています。
入力自体はできなくなるんですよ。
ただ、セルの選択もできないようにと要求されているのですが、
それができません。。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-02-24 14:32
引用:

mimaさんの書き込み (2006-02-24 14:10) より:

ただ、セルの選択もできないようにと要求されているのですが、
それができません。。


不思議ですね... VSTO だと無効になっちゃうなんて...
COM Interop だと普通にできたんですが... orz

ちょっと私も調べてみます。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-02-24 14:37
第 3 引数の Contents に明示的に true を渡したらどうなりますか?

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
mima
会議室デビュー日: 2006/02/23
投稿数: 9
投稿日時: 2006-02-24 16:01
>第 3 引数の Contents に明示的に true を渡したらどうなりますか?

やってみたんですが、変化ありません。。

スキルアップ/キャリアアップ(JOB@IT)