掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
Excel操作時のオブジェクト参照エラーについて・・・ (ID:116909)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
>>ゆうさん > VB.NET2002 > Office2000 Pro > WindowsXP Pro できえれば、2002/2003の方が安全なんですけれどね。 PIAs(Office Primary Interop Assemblies)が用意されているので。 Excel 2000だと、interop アセンブリを手動で修正しないと、 イベントの処理に問題が起きたりするので、要注意。(MSKB:316653) ところで、OfficeのService Release/Service Packは同一ですか? あと、開いているファイルのパスは正しいですか? > 「オブジェクト参照がオブジェクト インスタンスに設定されていません。」というエラーがでてしまいます。 コードを見た限り、exe作成時に、Option Strict Onモードは 指定していないのですよね? どうせOption Strict Offモードにしているのであれば、参照設定を外し、 「遅延バインディング」にて作成してみてください。 遅延バインディングの場合では、他のPCでエラーになりますか? もし、遅延バインディングならば動作するのであれば、アセンブリが 実行環境に未登録のままになっているのかも? たとえば、Excelライブラリは 登録してあるけれど、Officeライブラリが登録だとか。 思い付きで書いただけなので、外しているかも知れませんけど。 >>葉月さん 自分の場合は、*.xls ではなく *.xlt として作っておき、 Workbooks.Open() の替わりに、Workbooks.Add() を使ってます。 *.xls を .Open() して .SaveAs() という方法でもできますが、 元ファイルをテンプレートファイルにしておいた方が、 雛形を間違えて上書きしてしまう事故を防げるので。 >>ファリンファリンさん その記述だと、WorkbooksをReleaseComObject()できないので、 マズイと思います。一度変数に受けてReleaseComObjectしないと、 COM側のメモリを正しく解放できなくなってしまうような。。。 (.NET側のメモリ解放だけなら、GC.Collect()で済みますが)
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.