はじめまして、Delphiはじめてから2ヶ月の、のこ、と申します。
さっそくですが、StringGridからExcelにデータを出力するプログラムを
作っていたんですが、もし、相手先のPCにExcelがインストールされて
いなかった場合、このプログラムを割り当てているボタンを使用不可したい
と考えております。
いろいろ調べたんですが、見当がつきません。ご指導のほどよろしくお願いします。
出力するのはCreateObjectでExcel.Applicationを作ってやるんですよね。
CreateObjectに失敗したらインストールされていない、とするのはだめですか?
もしくは、レジストリで
\HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Applications\EXCEL.EXE
があるか調べるとか。
レジストリは削除されたらないことになってしまいますが、Excel実行時に再作成されているはずです。
レジストリを調べる方は、確実性がないと思いますが。
Win98SE + Excel2000で、
\HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Applications\
以下に、EXCEL.EXEはありません。
それでは、
\HKEY_CLASSES_ROOT\Applications
にも、EXCEL.EXEはありませんか?
今環境がWindowsXP Professionalしかないので、他の環境はわかりません。
もしかしたら、これも含めて、レジストリから取得できるのはXPだけかもしれません。ZDNETのTipsでも、XPのものしか見つかりませんでした。
曖昧な情報ですみません。
やはり、CreateObjectの成功か失敗かで判断したほうが確実かと。
にしのさん、WINKさん、ありがとうございます。
起動するとき、EXCEL.EXEを探して、インストールされているかどうか
調べてボタンを使用不可にできればいいなぁ〜と考えていたんですが
CreateObjectに失敗したら、メッセージを出す方法、一度やってみます。
ツイート | ![]() |