none
VB.netでのExcelファイル保存について RRS feed

  • 質問

  • VB.net 2005でMS ACCESSよりデータを取得してExcelに保存するプログラムを作成しています。

     

    下記のサイトを参考にして、プログラムを作成し、開発環境のPCでは問題なく動作したのですが、サーバ環境ではエラーが発生してしまいます。

     

    MicroSoft Excel 11.0 Object Library を参照追加(COM)していますが、サーバのExcelが2000というのが問題なのでしょうか?

     

    Excel保存する別の方法を知っている方がいればお教えください。

     

     

    <参照サイト>

    http://support.microsoft.com/kb/306022/

    http://www.bcap.co.jp/hanafusa/dotnet/Excel01.htm

     

    <開発環境>

    Windows XP Pro

    Visual Studio 2005

    Excel 2003

     

    <サーバ環境>

    Windows Server 2003

    Excel 2000

     

    <エラー>

    System.Exception: System.IO.FileNotFoundException: Could not load file or assembly 'Microsoft.Office.Interop.Excel, Version=11.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c' or one of its dependencies. 指定されたファイルが見つかりません。
    File name: 'Microsoft.Office.Interop.Excel, Version=11.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c'

     

    2007年4月9日 6:33

回答

すべての返信

  • Excelのバージョンの差だと思います。

    Excel2000だと、確か8.0だったかと。

     

    未確認情報

    レイトバインディングにすればできるかも。

    または、DAOを介して行うとか

     

    VB6.0のサンプル

    http://homepage2.nifty.com/sak/w_sak3/doc/sysbrd/vb_t16.htm

    http://ayusya.hp.infoseek.co.jp/ProgramVBExcel.html

     

    2007年4月9日 8:19
  • Office PIA を利用する時は、同じバージョンの PIA を利用することが原則です。

    ちなみに、サーバー側でのオートメーションの利用は... 技術的なものだけでなくライセンス上の問題もありますので、ご注意ください。
    2007年4月9日 9:42
  • オーツキさん、じゃんぬねっとさん、回答ありがとうございます。

    やはり、バージョンが異なるとダメなのですね。

    サーバ環境と、開発環境を合わせる方向で検討したいと思います。

    2007年4月10日 6:12
  • 上記質問の続きです。

     

    Excel2003がインストールされている別のPC(仮にPC_Aとする)に .net Framework 2.0をインストールして、Excel出力を行う実行ファイル(EXE)を起動したところ、上記と同様のエラーが発生してしまいました。

     

    試しに、参照追加したMicroSoft Excel 11.0 Object Library の設定で「ローカルにコピー」をTrueに変更し、実行ファイル(EXE)とコピーされたdllを、PC_Aにコピーして実行したところ、正常にExcel出力されました。

     

    参照設定の「ローカルにコピー」をFalseして実行ファイル(EXE)を作成すると、別のPCではdllを参照することができないのでしょうか?

     

    どなたか知っている方がいればお教えください。

     

    2007年4月10日 12:10
  • VB6の時は、参照設定せずに全部Object型で定義したら

    バージョンが何でも動きましたよ。

    2007年6月13日 13:19