人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

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

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

●質問者: rarachojiro
●カテゴリ:コンピュータ
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

質問者から

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

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


1 ● パパトモ
ベストアンサー

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

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


2 ● ken3memo

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

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

関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ