トップ回答者
VBよりEXCEL操作

質問
-
お世話になります
vb2008でexcelを操作したいと思っております
2つのフォルダーがあり(CドライブにTXTとXLS)
TXTの中にはtest.txtとタブ区切りで作成されたファイルがあります
test.txtをXLSフォルダーにtest.xlsxとして作成し
エクセルを開いた状態にしたいと考えております
動作は実現できる事ができましたが、更なる問題があります
①フォームを閉じないとEXCEL.EXEがタスクマネージャーから消えません
②エクセルデータをSAVEした後にCドライブにTXTのtest.txtファイルを削除したいと思います
ご回答よろしくお願いします
Public Class Form1 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim xlApp As Object xlApp = CType(CreateObject("Excel.Application"), Object) With xlApp Dim txtDrName As String = "C:\TXT" Dim xlsDrName As String = "C:\XLS" Dim txtFiName As String = "\test.txt" Dim xlsFiName As String = "\test.xls" .Workbooks.OpenText(Filename:=txtDrName & txtFiName, TAB:=True) .Cells.Select() .Cells.EntireColumn.AutoFit() .Range("A1").Select() .Application.DisplayAlerts = False ChDir(xlsDrName) .ActiveWorkbook.SaveAs(Filename:=xlsDrName & xlsFiName, FileFormat:=56, CreateBackup:=False) .Application.DisplayAlerts = True .Application.Visible = True System.Runtime.InteropServices.Marshal.ReleaseComObject(xlApp) xlApp = Nothing End With End Sub End Class
- 編集済み ジョウジ 2013年1月10日 2:34
回答
-
System.Runtime.InteropServices.Marshal.ReleaseComObject メソッドを調べてみてください。
関連トピックも上げておきます。
http://social.msdn.microsoft.com/Forums/ja-JP/vbgeneralja/thread/eea6b862-e0fd-4cfb-a5d1-5be7c01ffa43
http://social.msdn.microsoft.com/forums/ja-jp/csharpgeneralja/thread/0F210F52-3667-4E66-9DD6-4480EEDE48DE
ReleaseComObject メソッドを使わずに GC に任せるべきという意見もあると思うのでその辺は自己判断で。
- 回答としてマーク ジョウジ 2013年1月11日 5:25
すべての返信
-
System.Runtime.InteropServices.Marshal.ReleaseComObject メソッドを調べてみてください。
関連トピックも上げておきます。
http://social.msdn.microsoft.com/Forums/ja-JP/vbgeneralja/thread/eea6b862-e0fd-4cfb-a5d1-5be7c01ffa43
http://social.msdn.microsoft.com/forums/ja-jp/csharpgeneralja/thread/0F210F52-3667-4E66-9DD6-4480EEDE48DE
ReleaseComObject メソッドを使わずに GC に任せるべきという意見もあると思うのでその辺は自己判断で。
- 回答としてマーク ジョウジ 2013年1月11日 5:25