| 
    
     |  | はじめまして 早速ですが質問させていただきます。
 使用環境: Windows XP MCE , Excel 2000
 VBAのコード内にて、ファイルを開くダイアログを表示して、ファイル名を取得する関数を作っているのですが、ユーザーがキャンセルを押した場合の戻り値でつまづいています。(キャンセルが押されたら処理を終了する、という形にしたいのです)
 
 持っている参考書には、キャンセルが押されたら False が返るとあります。
 また、VarType(FileName)=vbBoolean だったらキャンセルが押されたと解釈できる、ともありました。
 
 FileName = Application.GetOpenFileName()
 if VarType(FileName)=vbBoolean Then Exit Sub
 
 実際上のようにやってみたところ、これがうまくいきません。
 キャンセルを押すと、"False"という文字列は返ってきますが、vbBoolean型ではなく vbString型として返ってくるのです。おまけに処理が続いてしまって、Falseというファイルが作成されてしまいます。
 
 参考書はExcel2002/2003バージョンなので、2000だとこれは使えないのでしょうか?
 一応、文字列"False"が返ってきたら処理を終了するという形で問題はなくなったのですが、気になりましたので質問させていただきました。
 よろしくお願いします。
 
 |  |