[リストへもどる]
一括表示

投稿時間:2003/03/12(Wed) 23:42
投稿者名:のっち
Eメール:
URL :
タイトル:
VBから既存のEXCELファイルを起動したい
はじめまして、のっちと申します。
こちらのHPを見て勉強させて頂いています。

早速ですが、ひとつ質問させてください m(__)m
VB.NET、EXCEL2000を使ってPGを組んでいます。

@既存のEXCELのファイルを起動
AVBは立ち上げたままでEXCELをアクティブ

をしたいのですが、下記の様に組むと
EXCELファイルオープン後すぐに終了してしまいます。
かといって
xlApp.Quit
をコメントにするとプロセスが残ってしまいます。
EXCELがユーザーに閉じられたのを関知して
そのプロセスを終了することはできないでしょうか?
(複数EXCEL同時起動もやりたいです…(>_<))

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

  Set xlApp = New Excel.Application
  Set xlBook = xlApp.Workbooks.Open("既存のファイルパス")
  Set xlSheet = xlBook.Worksheets(1)  
  xlApp.Visible = True

  'ここでEXCELをアクティブにしたい

  `EXCELが終了したらこの後の処理を行いたい
  xlApp.Quit

  Set xlSheet = Nothing
  Set xlBook = Nothing
  Set xlApp = Nothing

  以上、ご助言宜しくお願いしますっ(>_<)
  一部間違えてましたので訂正しました。

投稿時間:2003/03/13(Thu) 10:36
投稿者名:nanashi
Eメール:
URL :
タイトル:
Re: VBから既存のEXCELファイルを起動したい
見たところVB側からEXCELを操作するわけじゃなさそうなので
Shellで起動させれば良いんじゃないですか?

投稿時間:2003/03/15(Sat) 00:20
投稿者名:のっち
Eメール:
URL :
タイトル:
Re^2: VBから既存のEXCELファイルを起動したい
助言ありがとうございます!
Shellでも自分の希望通り動きました(^o^)
調べた結果、下記の一行でも同様に行えることが分かりました(多分…)

System.Diagnostics.Process.Start(ファイルパス)

ShellでプログラムIDを取得して
二重起動された場合に起動中のファイルをアクティブに
したかったのですが、
Shell起動したエクセルファイルからマクロで新規ブック起動を
行うと、AppActivateが希望通り動いてくれなかったので
GetObjectでシートを指定してアクティブにすることにしました。