QA@IT

任意のExcelファイルをオープンしたいのですが

4866 PV

@ITの記事「Excelファイルにアクセスするには?[C#、VB] - @IT」についての質問です。

VB2008 Standerd Edition を使用しています。

Dim oXls As Excel.Application ' Excelオブジェクト    7行目
oXls = New Excel.Application()                8行目

をForm1に追加すると

1.型 'Excel.Application'が定義されていません。   ファイル:Form1 7行
2.型 'Excel.Application'が定義されていません。   ファイル:Form1 8行

とエラーメッセージがでます。
よろしくお願い致します。

  • 当然、当該記事の一番最初にある
    参照の追加はしてありますよね?
    -
  • @ITの記事「Excelファイルにアクセスするには?[C#、VB] - @IT」についての質問です。

    ありがとうございました。

    Excelをオープンすることが出来ました。

    ただし、「COMExceptiopn はハンドルされませんでした。

    …C:Sample.xls が見つかりません。…」

    とメッセージがでます。無視してもExcelは動いています。
    -

回答

VS2008が無いので、VS2012(Express for Windows Desktop)でやってみました。
VS2008でも同じかどうかは分かりませんが、Importsが必要かも知れません。

それと、サイトのサンプルの通りに2行で書くとやっぱりエラーになるので、下記の例の通りに1行で書いてみてください。

ちなみに、VS2012では参照の追加の操作がわかりにくくて、私もちょっとはまりました。チェックボックスを付けてOKしないといけません。


(追記)
すみません、質問と直接関係ありませんが、勘違いしていたので、訂正します。
(クラスのメンバーなのだから1行でしか書けないの当たり前でした...)

VS2012バージョンの、Excelファイルをオープンするまでのところを書いておきます。

' Form1.vb
Imports Microsoft.Office.Interop

Public Class Form1

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

        Dim excelName As String = "C:\sample.xls"

        Dim oXls As Excel.Application
        Dim oWBook As Excel.Workbook

        oXls = New Excel.Application() 'Excelを起動
        oXls.Visible = True ' 起動したExcelが表示される

        'Excelブックをオープン
        oWBook = DirectCast((oXls.Workbooks.Open( _
          excelName, _
          Type.Missing, _
          Type.Missing, _
          Type.Missing, _
          Type.Missing, _
          Type.Missing, _
          Type.Missing, _
          Type.Missing, _
          Type.Missing, _
          Type.Missing, _
          Type.Missing, _
          Type.Missing, _
          Type.Missing, _
          Type.Missing, _
          Type.Missing)),  _
          Excel.Workbook)

    End Sub

End Class

.

下記のコードが、最初の勘違いしていたバージョンです。

Imports Microsoft.Office.Interop

Public Class Form1

    Dim oXls = New Excel.Application()

End Class
編集 履歴 (2)
  • 有り難うございました。
    Excelをオープンできるようになりました。
    ただ、オープン時にC:\sample.xlsを開きにいくので、起動時に何もしないように出来ればありがたいです。
    -
  • コードにコメントを追加しました。oXls.Visible = Trueで起動したExcelが表示されるようになりますので、その次のオープンのところを消してしまえば、Excelブックを開きに行きません。 -
ウォッチ

この質問への回答やコメントをメールでお知らせします。