| ■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共に開放漏れが無い事を確認しております。
  | 
               
            
           
         
        
       |