vb2010でExcelをオープンできない?


vb2010から既存のExcelをオープンするプログラムを、色々なサイトのサンプルを参考にして作りました。開発環境(VisualStudio)および開発用マシンに実行モジュールをインストールして動かすと、問題なく動作します。しかし、別のマシン(WinXP,Win7:両方テスト)にインストールすると「オブジェクト参照がオブジェクトインスタンスに設定されていません」というエラーが発生します。エラー箇所は、下記のコーディングのファイルオープンのステートメントです。
別マシンでは、フォーム系の別プログラムは正常に動作しています。Windows Updateで、最新の.NetFrameworkはインストールしているつもりです。Excelを制御する何かのコンポーネントのようなものが足りないのか?などと、中途半端な知識しかなく、問題を解決できません。
有識者の方のサポートを是非お願いします。

回答の条件
  • 1人5回まで
  • 登録:
  • 終了:2012/09/14 09:22:12
id:rarachojiro

以下が実際のコーディング内容です。

Imports Excel = Microsoft.Office.Interop.Excel

Imports Microsoft.Office.Interop

Imports Microsoft.Office.Core

Imports System.Runtime.InteropServices

Public Class ExcelCtl

Public xlApp As New Excel.Application

Public xlBooks As Excel.Workbooks

Public xlBook As Excel.Workbook

Public xlSheets As Excel.Sheets

Public xlSheet As Excel.Worksheet

Public xlClose As Boolean

Public Function ExcelOpen(ByVal FilePath As String, ByVal SheetName As String)

''Excel のオープン処理用プロシージャ

On Error GoTo ErrHandler

Dim xlsstat(6) As Object

xlClose = False '起動中は、ユーザが Excel を閉じれないように

xlApp = New Excel.Application

'Excel の WorkbookBeforeClose イベントを取得

AddHandler xlApp.WorkbookBeforeClose, AddressOf xlApp_WorkbookBeforeClose

xlBooks = xlApp.Workbooks

'既存のファイルを開く場合

xlBook = xlBooks.Open(FilePath) <=== ●●● このステートメントでエラー発生 ●●●

xlSheets = xlBook.Worksheets

xlSheet = DirectCast(xlSheets(SheetName), Excel.Worksheet)

xlApp.Visible = False

xlsstat(1) = xlApp

xlsstat(2) = xlBooks

xlsstat(3) = xlBook

xlsstat(4) = xlSheets

xlsstat(5) = xlSheet

xlsstat(6) = xlClose

Return xlsstat

Exit Function

ErrHandler:

MsgBox(FilePath & ":" & SheetName)

End Function

End Class

ベストアンサー

id:papa-tomo No.1

回答回数362ベストアンサー獲得回数107

Excelのバージョンが違うのが原因だと思います。

開発環境と実行環境のExcelのバージョンを合わせるか、ExcelObjectLibralyのバージョンを実行環境のExcelのバージョンに合わせれば直るのではないでしょうか。

その他の回答1件)

id:papa-tomo No.1

回答回数362ベストアンサー獲得回数107ここでベストアンサー

Excelのバージョンが違うのが原因だと思います。

開発環境と実行環境のExcelのバージョンを合わせるか、ExcelObjectLibralyのバージョンを実行環境のExcelのバージョンに合わせれば直るのではないでしょうか。

id:ken3memo No.2

回答回数317ベストアンサー獲得回数115

>開発用マシンに実行モジュールをインストールして動かすと、問題なく動作します。

間違えました。すみません。

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません