プロが教える店舗&オフィスのセキュリティ対策術

ファイルとかを開く時に使うShellExecuteって何故関数なのですか?

Sub test()
Dim ファイル名 As String

ファイル名 = "C:\Test用テキストファイル.txt"
CreateObject("Shell.Application").ShellExecute ファイル名
End Sub

このようなコードでファイルを開いていますが、関数って戻り値がある場合に使うのですよね?

http://msdn.microsoft.com/ja-jp/library/cc422072 …
をみたらShellExecuteは関数との事でした。
ずっとメソッドだと思ってました。

A 回答 (3件)

http://msdn.microsoft.com/en-us/library/windows/ …
にメソッド (methods)と載っています。
質問者さんが探し当てたのは、API?関連のだと思います。
でも、関数|メソッド の境界線はぼやけていて厳密でもないような気がします。
    • good
    • 0

>ファイル名 = "C:\Test用テキストファイル.txt"


>CreateObject("Shell.Application").ShellExecute ファイル名

指定のファイルは必ず開けるものだと、思い込んでる限りはメソッドのように使ってるので構いません。関数として使う価値が無い、と言い換える事もできます。


ご覧になった資料で「戻り値」について解説されていますが、成功した時、失敗した時にそれぞれ戻り値が変わります。
そういう「戻り値」があるから(用意されているから)関数なワケですが、shellexecuteの続きの処理で実行結果に応じて何かをしなきゃならない場合に、例えばそもそも成功したのか失敗したのかを何か別の手立てで確認しなきゃならないとか、あるいは失敗した時にいちいちエラー処理ルーチンに分岐して状況を調べて手当てをしてresumeするなんて事をしないでも、関数にして戻り値を受け取ることで一発で済みます。
    • good
    • 0
この回答へのお礼

ありがとうございました。

お礼日時:2013/02/08 23:56

あなたが書いているように、戻り値があるので、関数です。



戻り値が無いと、失敗したかどうかわからないじゃ無いですか。
指定したファイル名のファイルが存在しないとエラーですよ。
    • good
    • 0
この回答へのお礼

ありがとうございました。

お礼日時:2013/02/08 23:56

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています