| 
    
     |  | ▼映画館スタッフ さん: >はじめまして
 >早速ですが質問させていただきます。
 >使用環境: 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"が返ってきたら処理を終了するという形で問題はなくなったのですが、気になりましたので質問させていただきました。
 >よろしくお願いします。
 
 FileName をどのように宣言されているか不明ですが、
 
 Dim Filename As Variant
 なら問題なかったです(当方2002ですけど)
 
 |  |