タイトル | : 解決しました!! |
記事No | : 2345 |
投稿日 | : 2005/10/01(Sat) 22:21 |
投稿者 | : K |
管理人さんにヒントを頂いてから、試行錯誤した挙句、何とか解決しました! 有難うございました。(m_m)
Dim oXl As Object Dim localByName As Process() Dim p As Process 'プロセス Dim tmp As Boolean Dim process_flag As Boolean 'ブックが開いているかどうかのフラグ(閉じるとTrueになる) oXl = CreateObject("Excel.Application") oXl.Workbooks.Opentext(filename:="C:\ABC.csv", Comma:=True) ' この間、シートの加工処理 'フラグの初期設定 process_flag = False tmp = False '「process_flag」がTrueになるまで繰り返すループ 本文の内容は「LineInput(fileno)」 Do Until (process_flag = True) 'フラグ変数「tmp」を都度都度初期設定する tmp = False '指定のExcelファイルを起動しているExcel.EXEを探し終了させる localByName = Process.GetProcessesByName("Excel") '起動中のExcelのプロセスを取得 For Each p In localByName '指定のファイル名で起動中のExcelがあれば、「process_flag」をTrueにしてループを抜ける If System.String.Compare(p.MainWindowTitle, "Microsoft Excel - ABC.csv", True ) = 0 Then 'フラグ変数「tmp」をTrueにする tmp = True End If Next '「配信設定.csv」が開かれていればループ継続。開かれていなければループを抜ける If tmp = False Then process_flag = True End If '1秒待機する[BASP21のコマンドです] bobj.Sleep(1) Loop 'プロセス開放処理(Excelの終了) oXl.Application.Quit() 'オブジェクトを開放 oXl = Nothing bobj = Nothing
プロセス開放処理はきちんと入れています。これでバッチリです!
|