投稿者 たらちゃん  (社会人) 投稿日時 2009/1/18 05:37:27
お世話になります。
VB.netで以下のような流れのプログラムを作成しました。
1.csvファイルをデータセットに格納し、データグリッドに表示
2.データグリッドに表示したデータをExcelに出力

しかしExcelへの出力が完了してもExcelのプロセスが残ったままです。
このHPにあるVB6テクニックで解説してある「消えないExcelのプロセス」の箇所も読み、
その通りにExcelアプリケーションは終了しているはずなのですが・・・

どなたか原因をご教示いただけると幸いです。

※以下に参考までにコードの一部を抜粋します
(oledvはcsvファイルから読み込んだデータセットから生成したデータビューです。またExcelを
参照設定しています。)

        '-------------
        'Excelに接続
        '-------------

        Dim xlApp As Excel.Application
        Dim xlBook As Excel.Workbook
        Dim xlSheet As Excel.Worksheet

        'Excelの起動
        xlApp = CreateObject("Excel.application")
        '新規Excelファイルを作成する
        xlBook = xlApp.Workbooks.Add
        'データを出力するワークシートをSheet1にする
        xlSheet = xlBook.Worksheets(1)
        'Excelを非表示にする
        xlApp.Visible = False

        '-------------------------
        'DataSet抽出結果を出力する
        '-------------------------
        Me.ProgressBar1.Minimum = 0
        Me.ProgressBar1.Maximum = oledv.Count - 1

        Dim i As Integer
        For i = 0 To oledv.Count - 1
            xlSheet.Cells(i + 1, 1).value = "会社名"
            xlSheet.Cells(i + 1, 2).value = "住所"
            xlSheet.Cells(i + 1, 3).value = "県名"
            xlSheet.Cells(i + 2, 1).value = oledv(i)(1)    '会社名
            xlSheet.Cells(i + 2, 2).value = oledv(i)(5) '住所
            xlSheet.Cells(i + 2, 3).value = oledv(i)(10) '県
            Me.ProgressBar1.Value = i
        Next

        xlBook.SaveAs(Microsoft.VisualBasic.Left(myfilepath, Len(myfilepath) - 4) & "_修正")
        xlBook.Close()
        xlApp.Quit()

        xlSheet = Nothing
        xlBook = Nothing
        xlApp = Nothing

        '処理終了メッセージ
        MsgBox("ファイルの加工を終了しました")
        Me.ProgressBar1.Value = 0

    End Sub