Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


28607 / 76732 ←次へ | 前へ→

【53419】Excel2000にてGetOpenFileNameの戻り値について
質問  映画館スタッフ  - 08/1/9(水) 22:34 -

引用なし
パスワード
   はじめまして
早速ですが質問させていただきます。
使用環境: 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"が返ってきたら処理を終了するという形で問題はなくなったのですが、気になりましたので質問させていただきました。
よろしくお願いします。
0 hits

【53419】Excel2000にてGetOpenFileNameの戻り値について 映画館スタッフ 08/1/9(水) 22:34 質問
【53420】Re:Excel2000にてGetOpenFileNameの戻り値... じゅんじゅん 08/1/9(水) 22:50 発言
【53421】Re:Excel2000にてGetOpenFileNameの戻り値... neptune 08/1/9(水) 22:53 回答
【53422】Re:Excel2000にてGetOpenFileNameの戻り値... neptune 08/1/9(水) 22:54 回答
【53423】Re:Excel2000にてGetOpenFileNameの戻り値... 映画館スタッフ 08/1/9(水) 22:58 お礼

28607 / 76732 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free