■11472 / inTopicNo.5) |
Re[4]: WordとExcelのユーザ操作によるファイルクローズを禁止 |
□投稿者/ まぐねしうむ (6回)-(2007/12/14(Fri) 14:55:55)
|
参考にしたHP
http://support.microsoft.com/kb/302815/ja
http://support.microsoft.com/kb/824022/ja
◆Excel(こっちはOK)
static Microsoft.Office.Interop.Excel.AppEvents_WorkbookBeforeCloseEventHandler EventDel_BeforeBookClose;
//Bookを閉じるのを禁止
EventDel_BeforeBookClose = new Microsoft.Office.Interop.Excel.AppEvents_WorkbookBeforeCloseEventHandler(BeforeBookClose);
xlApp.WorkbookBeforeClose += EventDel_BeforeBookClose;
//Bookを閉じるのを許可
xlApp.WorkbookBeforeClose -= EventDel_BeforeBookClose;
/// <summary>
/// BookのCloseを禁止する
/// </summary>
private static void BeforeBookClose(Microsoft.Office.Interop.Excel.Workbook Wb, ref bool Cancel)
{
Cancel = true;
}
◆Word(これだと動く、ただEvents4では無くEvents2にしたい)
static Microsoft.Office.Interop.Word.ApplicationEvents4_DocumentBeforeCloseEventHandler EventDel_BeforeDocumentClose;
//Documentを閉じるのを禁止
EventDel_BeforeDocumentClose = new ApplicationEvents4_DocumentBeforeCloseEventHandler(BeforeDocumentClose);
wdApp.DocumentBeforeClose += EventDel_BeforeDocumentClose;
//Documentを閉じるのを許可
wdApp.DocumentBeforeClose -= EventDel_BeforeDocumentClose;
/// <summary>
/// DocumentのCloseを禁止する
/// </summary>
private static void BeforeDocumentClose(Microsoft.Office.Interop.Word.Document Do, ref bool Cancel)
{
Cancel = true;
}
ApplicationEvents4_DocumentBeforeCloseEventHandlerを使うと動きますが
ApplicationEvents2_DocumentBeforeCloseEventHandlerだと「BeforeDocumentClose」の型が
自動的にEvents4になってしまいErrになります。
「BeforeDocumentClose」をApplicationEvents2_DocumentBeforeCloseEventHandlerの型にするにはどうすれば良いでしょうか?
Office2000以降を想定しているためEvents2を使用する必要があります。
表示されるErr
型 'Microsoft.Office.Interop.Word.ApplicationEvents2_DocumentBeforeCloseEventHandler' を
型 'Microsoft.Office.Interop.Word.ApplicationEvents4_DocumentBeforeCloseEventHandler' に暗黙的に変換できません。
> [.NET]以降、Excel のプロセスが残るという問題が発生していますが、
> 対策してますか?
Excel,Word共に開放漏れが無い事を確認しております。
|
|