- - PR -
VB.NET2003で.prnファイルをプロセス起動したい
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2006-03-09 16:26
お世話さまです。
Excelに関連づけされていないprnファイルを下記のように 起動してExcelを立ち上げたいのですが、 VBのコードの中で動的にprnファイルをExcelに関連づけるには どのようにすればよいのでしょうか? Process.Start("c:\\test.prn") CreateObjectでExcelを起動してWorkbooks.Openでprnファイルを 開くようにすると、ファイルを開く毎にExcelが起動されて しまうので、これを避けたいのが主目的だったりします。 ご教示のほど、宜しくお願い致します。 | ||||||||
|
投稿日時: 2006-03-09 16:32
引数で渡せば良いと思います。
_________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||
|
投稿日時: 2006-03-09 16:43
===>じゃんぬねっと様
こんにちは! いつもお世話さまです。 まるで私がこういう質問をするのが判っていたかのような超高速レス、 感謝です。w ご教示頂いた内容をさっそく実装してテストしてみましたところ、 動きました。 ありがとうございます。 ただ、この方法でもEXCELがそのつど起動されてしまい、 複数のEXCELが立ち上がってしまうのですが… もしかして、xlProcess変数を起動するイベント内で定義してはダメで クラスのPrivate変数として定義しないとダメなんでしょうか? お手数をおかけして申し訳ありませんが、複数のEXCEL起動を 回避する方法があればご教示頂きたいのですが。m()m | ||||||||
|
投稿日時: 2006-03-09 16:52
>クラスのPrivate変数として定義しないとダメなんでしょうか?
んなこたー自分でも検証できますね。^^; で、やってみましたところ、同じでした。 関連付けされたファイルのプロセス起動であれば 1つのEXCELが起動して複数のブック表示になるんでしょうけど、 この方法だと複数起動もやむなしという感じがします。 そうすると、やはり関連付けを実装するしかないような 気がするのですが… | ||||||||
|
投稿日時: 2006-03-09 16:58
では、最初に戻ります... (^-^;)
これは、Excel.Application を保持しておいてやれば可能な気がします。 毎回、CreateObject しているので Excel.Application のプロセスが増えるのではないでしょうか? _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||
|
投稿日時: 2006-03-09 17:03
===>じゃんぬねっと様
度々お呼びだてして申し訳ありません。 その方向で修正してみようと思います。 ご教示ありがとうございました。 | ||||||||
|
投稿日時: 2006-03-09 17:16
CreateObject ではなく、コンパイル解決できる New をお勧めしたかったり。
タスク バーには 2 つ表示されますが、実際には 1 つの Excel.Application なので、 どちらか一方の大窓を閉じれば、2 つとも終了します。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||
|
投稿日時: 2006-03-09 17:33
===>じゃんぬねっと様
手取り足取り、感謝に絶えませぬ。T-T 今日はちと時間がないので、明日にもご教示頂いた 方法を実装してみたく思います。 以下にワタクシなりの結果報告も書いておきます。 Private pExcel As Object Private Sub cmdPrn_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdPrn.Click Try pExcel = GetObject(, "Excel.Application") Catch ex As Exception pExcel = CreateObject("Excel.Application") End Try With pExcel .Visible = True .Workbooks.Open("c:\Test.prn") End With End Sub これでも一応、EXCELの複数起動は回避できました。^^; |