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

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

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

Re[2]: CreateObjectについて


(過去ログ 65 を表示中)

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

■38071 / inTopicNo.1)  CreateObjectについて
  
□投稿者/ hs (84回)-(2009/07/06(Mon) 18:21:18)

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

いつもお世話になっております。

VB2008でACCESSやExcelなどをCreateObjectで起動させる場合、やはりAPを実行するPCには、
起動させるACCESSやExcelがインストールされているのは当然ですよね。

仮にPGでACCESSやExcelを起動させる場合使用するPCに左記のアプリケーションがインストールされていない場合、
もちろんエラーが帰ってくと思われますが、VBから指定のアプリケーションがインストールされていることを判別する
記述をどなたかご教授いただけますでしょうか?

よろしくお願いします。
引用返信 編集キー/
■38073 / inTopicNo.2)  Re[1]: CreateObjectについて
□投稿者/ .SHO (930回)-(2009/07/06(Mon) 18:40:56)
> もちろんエラーが帰ってくと思われますが

そのエラーで判断しちゃダメなんですか?
引用返信 編集キー/
■38075 / inTopicNo.3)  Re[1]: CreateObjectについて
□投稿者/ 魔界の仮面弁士 (1146回)-(2009/07/06(Mon) 18:48:01)
No38071 (hs さん) に返信
> VB2008でACCESSやExcelなどをCreateObjectで起動させる場合、やはりAPを実行するPCには、
> 起動させるACCESSやExcelがインストールされているのは当然ですよね。
その通りです。また、CreateObject の第2引数を指定した場合には、
実行する PC と呼び出す PC の両方に必要になるかと思います。


> VBから指定のアプリケーションがインストールされていることを判別する
> 記述をどなたかご教授いただけますでしょうか?
Catch 句でそのエラーを拾うようにしてみてください。

一応、WMI の \root\cimv2\Win32_Product クラスで列挙したり、あるいはレジストリの
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall から
判断するといった手もありますが、そもそも、たとえインストールが行われていても、
権限不足やアクティベーション期限切れなどの理由で CreateObject が失敗すれば
意味が無いのですから、エラートラップで判断するのが一番かと思います。
引用返信 編集キー/
■38078 / inTopicNo.4)  Re[2]: CreateObjectについて
□投稿者/ hs (85回)-(2009/07/06(Mon) 19:06:04)
No38073 (.SHO さん 魔界の仮面弁士さん) に返信

いつもありがとうございます。

ということは、今回の場合、APがインストールされているのかを先に判別するのではなく、
Catch句で判断すればよいということですね。

try
  '指定アプリケーション起動(Accessとしたと時)
  CreateObject(ACCESS.AP)
  最適化実行
catch
  messegebox.show("ACCESSがインストールされていません。")
end try

まだCreateObjectを理解していないのでPGを試すことはできないのですが、こんな感じで理解してもよろしいでしょうか?
引用返信 編集キー/


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

このトピックに書きこむ

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

管理者用

- Child Tree -