| 
                 分類:[C#] 
 
  分類:[C#] 
  2006/04/11(Tue) 18:44:59 編集(投稿者) 2006/04/11(Tue) 15:22:51 編集(投稿者)
  こんにちは。Soony と申します。 いつも参考にさせていただいて、日々救われております。
  Win XP Pro SP2 (開発、実行) Office 2003 Pro(開発、実行) VS2003 C#
  C#でVisual Studio Tools for Officeを使用しているのですが、 SaveメソッドやSaveAsメソッド、Closeメソッドなどを使用して、 作成したExcelファイルを保存しようとすると、 「ファイルが保存できませんでした」というエラーが表示され、 怒られてしまうパソコンがあります。
   Excel.Application objApp = new Excel.Application();  try {   Excel.Workbooks objBooks = objApp.Workbooks;   try {    Excel._Workbook objBook = objBooks.Open(filename, 0, false, Missing.Value, "", "", false, Excel.XlPlatform.xlWindows, "", true, false, 0, true, false, false);    try {     Excel.Sheets objSheets = objBook.Worksheets;     try {      Excel._Worksheet objSheet = (Excel.Worksheet)objSheets.get_Item(1);      try {       //      } finally {       if (objSheet != null) {        System.Runtime.InteropServices.Marshal.ReleaseComObject(objSheet);       }      }     } finally {      if (objSheets != null) {       System.Runtime.InteropServices.Marshal.ReleaseComObject(objSheets);      }     }    } finally {     if (objBook != null) {      try {       objBook.Close(true, filename, true); //     ↑ ここでエラーになる ↑      } finally {       System.Runtime.InteropServices.Marshal.ReleaseComObject(objBook);      }     }    }
  この現象は、必ずというわけではなく、特定のパソコンで発生します。
  実行している各パソコンは、Active Directory環境下に30台ほどあり、 動作を確認すると、4割程度のパソコンで上記のエラーが発生し、 残りのパソコンでは、期待通りに正常にファイルが保存されます。
  また、エラーが発生しているパソコンでログイン先を自PCにする (ドメインへのログインからはずれる)と、正常に保存がなされるので、 Excelファイルを保存するときに、何かしらのセキュリティが かかってしまっているのかなと考えているのですが・・・。
  また、正常に保存ができたExcelファイルを、エラーが発生するパソコン上で OfficeのExcelで開き、上書き保存をしようとすると、 「ファイルが保存できません」と怒られます。 (ファイル名を指定して保存をしても、同様に怒られる現象もありました)
 
  一応、ドメイン環境に参加した状態で、以下の権限設定をしています。 ・ドメイン上で、Domain Users権限 ・ドメインにログインしているユーザーに、ローカルPCに対して、Administrators権限 (できれば、Power User権限としておきたいが、テスト用に一部のPCでフルに与えてみている)
  この不具合を回避するために、どのような設定が必要なのか掴めずにいます。 お知恵の拝借をさせていただきたく、お願いいたします。
 
 
  p.s. ・・・もしかすると、質問の趣旨が、この掲示板の趣旨から 外れてしまっているかもしれませんね・・・(大汗)。
  どちらかというと、言語の問題よりも、ネットワーク環境の問題に 終始しそうな気がします。
  でも、VSOTを使用する上においてという意味では、こちらで質問した方が 的確な解決方法が得られそうではありますね。
  ということで、場違いの可能性は否定できませんが・・・ ご教授いただけることを期待して・・・ ぜひよろしくお願いいたします。
 
 
 
  |