- ベストアンサー
エクセルで電卓表示
いろいろネット検索して下記の記述で電卓が呼び出せるのはわかりました。 Sub 電卓呼び出し() x = Shell("C:\WINNT\system32\calc.exe") End Sub ただ、この記述だと、calc.exeのある場所が限定されてしまい、そこになければエラーになります。 calc.exeを検索して呼び出すためにはどのように書き換えればいいのでしょうか? それから x = Shell の意味を教えていただけると幸いです。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
標準のWindowsですと、calcのあるディレクトリにパスが通っているので、 Sub 電卓呼び出し() x = Shell("calc.exe") End Sub で良いのでは? 検索するって意味だと、OSが勝手に検索してくれているんですが。 > calc.exeを検索して呼び出すためには calc.exeがインストールされておらず、無かった場合にはどうお考えですか? 毎回HDDの中からファイルを検索すると鬱陶しいのでは? どうしても必要ならば、bookと同じ場所に置いておくとか。(再配布の可否があるので、オンラインソフトの方が良いですが。) -- > x = Shell Shellのヘルプによると、 | 実行可能プログラムを実行し、実行が完了するとプログラムのタスク ID を示すバリアント型 (内部処理形式 Double の Variant) の値を返します。プログラムの実行に問題が発生した場合は、0 を返します。 との事です。 xが0なら失敗。という事になります。
その他の回答 (2)
- shishishishi
- ベストアンサー率39% (362/921)
> calc.exeが無かった場合のためには下記のような書き方でいいでしょうか? Sub 電卓呼び出し() On Error GoTo mg x = Shell("calc.exe") mg: MsgBox "ありません" End Sub でもいいですね。
お礼
なるほど、On Error GoToですね。 この方がすっきりしますね。 ありがとうございました。
- neKo_deux
- ベストアンサー率44% (5541/12319)
> calc.exeが無かった場合のためには下記のような書き方でいいでしょうか? 「calc.exe」の代わりに、実施にありえないファイル「ほげほげ.exe」などを指定してみてください。 私の環境Win2000+Excel2000ではOKでした。
お礼
なるほど、そうやって試せばいいんですね!! ありがとうございました。
お礼
さっそくありがとうございます。OSが勝手に検索してくれているんですか!すごい。 calc.exeが無かった場合のためには下記のような書き方でいいでしょうか? Sub 電卓呼び出し() On Error Resume Next x = Shell("calc.exe") If x = 0 Then MsgBox "ありません" End Sub