tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板) [ツリー表示へ]   [Home]
一括表示(VB.NET VB2005)
タイトルEXCELファイルが開けない
記事No974
投稿日: 2004/07/12(Mon) 17:07
投稿者ラッシー
[OSのVer]:Windows2000    [VBのVer]:VB.NET  

始めまして。
プログラミングを始めて2年、VB.netは初挑戦のラッシーと申します。

現在、データベースから読込んできたレコードを、EXCELにはきだすといったようなことをしています。

    Private Function EXCELwrite() As String
        Dim boOpenExcel As Boolean
        Try
            Dim strExcelPath As String

            EXCELwrite = ""

            strExcelPath = pubGetAccCopy("test.xls")

            prvObjXLApp = CreateObject("Excel.Application")

            boOpenExcel = False

            With prvObjXLApp
                .Visible = False
☆☆☆☆☆       .Workbooks.Open(FileName:=strExcelPath, ReadOnly:=False)
                boOpenExcel = True
                prvObjXLSheet = .Workbooks(1).Worksheets(1)
                prvObjXLSheet.Copy(After:=prvObjXLSheet)
                prvObjXLSheetSample = .Workbooks(1).Worksheets(2)

                'ここにレコード内容をEXCELに記述する処理

                .DisplayAlerts = False
                .Workbooks(1).Worksheets(2).Delete()
                .ActiveWorkbook.Save()
                .DisplayAlerts = True
                .Quit()
                boOpenExcel = False
            End With


        Catch ex As Exception
       'エラー処理
        Finally
            If boOpenExcel Then
                prvObjXLApp.Quit()
            End If
            prvObjXLSheet = Nothing
            prvObjXLSheetSample = Nothing
            prvObjXLApp = Nothing

        End Try

    End Function

なぜか☆☆☆☆☆の個所でエラーで落ちてしまうのです。
  err.number : 438
  err.description : メンバが見つかりません。
これは、うまく開けていないということになるのでしょうか?

下の3つは宣言はもちろんしてあります。
    Private prvObjXLApp As Excel.Application 'Excelアプリケーション
    Private prvObjXLSheet As Excel.Worksheet 'Excelシート
    Private prvObjXLSheetSample As Excel.Worksheet 'Excelシート

なにか宣言が足りない等あるのでしょうか・・・
コレが出来ずに悩んでいます・・
どなたかご教授いただけると幸いです。

[ツリー表示へ]
タイトルRe: EXCELファイルが開けない
記事No975
投稿日: 2004/07/12(Mon) 18:51
投稿者ファリンファリン
[OSのVer]:Windows    [VBのVer]:VB.NET  
> 下の3つは宣言はもちろんしてあります。
>     Private prvObjXLApp As Excel.Application 'Excelアプリケーション
>     Private prvObjXLSheet As Excel.Worksheet 'Excelシート
>     Private prvObjXLSheetSample As Excel.Worksheet 'Excelシート>
> なにか宣言が足りない等あるのでしょうか・・・
> コレが出来ずに悩んでいます・・
> どなたかご教授いただけると幸いです。

以下は、C直下にあるBool1.xlsを開いています。
なにが違うかよく見てくださいね。(_は間違いでつけてる訳ではありません)

        '宣言部
        Dim objApp As Excel._Application = New Excel.Application()
        objApp.Visible = False    'Trueで起動を確認すると良いでしょう
        Dim objBook As Excel._Workbook = CType(objApp.Workbooks.Open("C:\Book1.xls"
), _
                                         Excel._Workbook)
        Dim objSheet As Excel._Worksheet = CType(objBook.ActiveSheet, Excel._Worksheet)
        'ココよりシートに対する処理を↓


        'App.Quitだけでは解放処理が完全ではないとのことです。
        'MSDN参照 hhttp://support.microsoft.com/default.aspx?scid=kb;ja;317109
        objApp.Quit()
        System.Runtime.InteropServices.Marshal.ReleaseComObject(objApp)
        GC.Collect()

        GC(ガベージコレクション)等はどういうものなのかお調べになってご使用下さい。

[ツリー表示へ]
タイトルRe^2: EXCELファイルが開けない
記事No980
投稿日: 2004/07/14(Wed) 11:28
投稿者ラッシー
返事が遅れてしまってごめんなさい。
ファリンファリンさん、早速のご回答を。

宣言の仕方がまずかったということでしょうか。
Excelへの操作が出来るようになりました。
処理後の開放については、うまくいっているみたいです。

ありがとうございました。
また何か引っかかったりしたらご教授願います。

[ツリー表示へ]