「MultiSelect」をtrueにした場合でもエラーが出ないサンプルを作成しました。
表示したいのは、以下のような画面です。

「GetOpenFilename」についてのExcelVBAのヘルプ

ヘルプのサンプルをコピーして、複数選択用に少し変更して以下のようにしました。

上記のプログラムを実行して、ファイル選択画面が表示されたら
「キャンセル」ボタンを押した場合 → 問題なく処理が中断される。
一つでもファイルを選択した場合 → 以下のエラーが発生しました。

上記のエラーが発生するのは「GetOpenFilename」の返り値をfalseと比較しているのが原因です。
「GetOpenFilename」の返り値はMultiselect=trueの場合、ファイルを選択するとArray型になります。
Arrayとfalse(Boolean)では型が一致しないので、そのように怒られてしまうのです。
返り値がBoolean形式の場合は処理中断、とすれば良いので、以下のように修正しました。

実行結果

ソースは以下からコピペしてご利用ください。
0 件のコメント:
コメントを投稿