C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[4]: エクセルの終了


(過去ログ 67 を表示中)

[トピック内 5 記事 (1 - 5 表示)]  << 0 >>

■38803 / inTopicNo.1)  エクセルの終了
  
□投稿者/ 亜矢 (1回)-(2009/07/25(Sat) 11:09:30)

分類:[VB.NET/VB2005 以降] 

よろしくお願いします。
 コマンドボタン1でエクセルを開いています。
 次ぎにコマンド2でそのエクセルを終了したいと思います。
 VB2008の初心者に付き終了方法が判りません。
 開いているファイルを "C:\test.xls"としてどのように記述すればいいか教えて頂きたいと思います。
引用返信 編集キー/
■38811 / inTopicNo.2)  Re[1]: エクセルの終了
□投稿者/ 魔界の仮面弁士 (1161回)-(2009/07/25(Sat) 12:53:36)
2009/07/25(Sat) 12:54:09 編集(投稿者)

どのように開いているのか分かりませんが、Workbooks オブジェクトの Add / Open メソッドで開いているなら、
Excel.Application オブジェクトの Quit メソッドで Excel を終了させることができます。
引用返信 編集キー/
■38820 / inTopicNo.3)  Re[2]: エクセルの終了
□投稿者/ 亜矢 (2回)-(2009/07/25(Sat) 14:13:35)
No38811 (魔界の仮面弁士 さん) に返信
> 2009/07/25(Sat) 12:54:09 編集(投稿者)
>
> どのように開いているのか分かりませんが、Workbooks オブジェクトの Add / Open メソッドで開いているなら、
> Excel.Application オブジェクトの Quit メソッドで Excel を終了させることができます。
早速のご指導ありがとうございます。開くプログラムは下記のようになっています。

Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim exApp As New Excel.Application
Dim exBook As Excel.Workbook
exBook = exApp.Workbooks.Open("C:\test.xls")
exApp.Visible = True
End Sub

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
'ここに閉じるプログラムを入れたいと思います。
End Sub
End Class
 Button2_Clickの所に閉じるプログラムを入れたいと思いますよろしくお願いします。
引用返信 編集キー/
■38821 / inTopicNo.4)  Re[3]: エクセルの終了
□投稿者/ 魔界の仮面弁士 (1164回)-(2009/07/25(Sat) 14:22:50)
No38820 (亜矢 さん) に返信
> 早速のご指導ありがとうございます。開くプログラムは下記のようになっています。
解放処理に問題のありそうなコードになっていますね…。

原型に近い形で修正するとしたら、こうかな。
# 掲示板上に直接記述しただけなので、テストしていませんけれども。


Imports System.Runtime.InteropServices
Public Class Form1
    Private exApp As Excel.Application = Nothing
    Private Sub Button1_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Button1.Click
        Button1.Enabled = False
        exApp = New Excel.ApplicationClass()
        Dim exBooks As Excel.Workbooks = exApp.Workbooks
        Dim exBook As Excel.Workbook = exBooks.Open("C:\test.xls")
        exApp.Visible = True
        Marshal.ReleaseComObject(exBook)
        Marshal.ReleaseComObject(exBooks)
    End Sub

    Private Sub Button2_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Button2.Click
      If exApp IsNot Nothing Then
          exApp.Quit()
          Marshal.ReleaseComObject(exApp)
          exApp = Nothing
      End If
    End Sub
End Class

引用返信 編集キー/
■38823 / inTopicNo.5)  Re[4]: エクセルの終了
□投稿者/ 亜矢 (3回)-(2009/07/25(Sat) 14:58:34)
No38821 (魔界の仮面弁士 さん) に返信
> ■No38820 (亜矢 さん) に返信
>>早速のご指導ありがとうございます。開くプログラムは下記のようになっています。
> 解放処理に問題のありそうなコードになっていますね…。
>
> 原型に近い形で修正するとしたら、こうかな。
> # 掲示板上に直接記述しただけなので、テストしていませんけれども。
>
>
> Imports System.Runtime.InteropServices
> Public Class Form1
> Private exApp As Excel.Application = Nothing
> Private Sub Button1_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Button1.Click
> Button1.Enabled = False
> exApp = New Excel.ApplicationClass()
> Dim exBooks As Excel.Workbooks = exApp.Workbooks
> Dim exBook As Excel.Workbook = exBooks.Open("C:\test.xls")
> exApp.Visible = True
> Marshal.ReleaseComObject(exBook)
> Marshal.ReleaseComObject(exBooks)
> End Sub
>
> Private Sub Button2_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Button2.Click
> If exApp IsNot Nothing Then
> exApp.Quit()
> Marshal.ReleaseComObject(exApp)
> exApp = Nothing
> End If
> End Sub
> End Class
ありがとうございました。解決しました。
こんごもよろしくお願いします。
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -