以下が実際のコーディング内容です。
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のバージョンに合わせれば直るのではないでしょうか。
>開発用マシンに実行モジュールをインストールして動かすと、問題なく動作します。
間違えました。すみません。