Excel VBA質問箱 IV

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

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


58394 / 76732 ←次へ | 前へ→

【23067】Re:ファイルを開く時のエラー回避
発言  ちゃっぴ  - 05/3/12(土) 2:10 -

引用なし
パスワード
   >>これで、ファイル1が指定されたパスに無い場合、
>>GoTo Next_1で次の操作が可能になりました。
>
>個人的には、GoTo ステートメントは、多用すると複雑になりますし、エラーチェ
>ックも困難になります。

Fileが開けないErrorになる場合は、いろいろなCaseがあって、
Fileが存在しないというのは、その中のひとつに過ぎません。

いちいち、全部のCaseを洗い出してCheckするとなると
工数もかかりますし、何より複雑になってわかりづらくなります。

また、Fileを開く時にはOpen MethodをCallした時点で、
Fileの存在Checkは内部で自動的に行っているので
事前にFileの存在Checkをするだけ無駄ともいえます。

こういう場合、On Error Statementをうまく使うほうが
はるかに望ましいです。

Gotoが嫌なのであれば、

On Error Resume Next
Set wbkTarget = Workbooks.Open(〜)
On Error Goto 0
If Err.Number = 0 Then
  ' Error処理
Else
  ' 正常処理
End If

という使い方もありますね。

というよりも、GOTOでわかりにくくなるような長いProcedureなら
分割してしまえば、GOTOを使っても可読性は落ちないはずです。
(1Procedureに何度もGotoを使うような長いProcedureを作ること自体が
そもそもの問題といえます。)

また、Fileの存在Checkがどうしても必要であれば、(めったにないと思いますが)
Dirを使うのは最悪で、FSOのFileExistを使用するべきですね。

DirだとExcelで開けるFileでも、ErrorになってしまうCaseが存在しますので・・・

7 hits

【22961】ファイルを開く時のエラー回避 VBA初心者 05/3/8(火) 23:27 質問
【22965】Re:ファイルを開く時のエラー回避 かみちゃん 05/3/9(水) 6:46 回答
【23016】Re:ファイルを開く時のエラー回避 VBA初心者 05/3/10(木) 0:10 お礼
【23021】Re:ファイルを開く時のエラー回避 かみちゃん 05/3/10(木) 7:20 発言
【23067】Re:ファイルを開く時のエラー回避 ちゃっぴ 05/3/12(土) 2:10 発言
【23071】Re:ファイルを開く時のエラー回避 かみちゃん 05/3/12(土) 8:05 発言
【23074】Re:ファイルを開く時のエラー回避 ichinose 05/3/12(土) 9:07 発言
【23075】Re:ファイルを開く時のエラー回避 G-Luck 05/3/12(土) 9:24 発言
【23087】Re:ファイルを開く時のエラー回避 ちゃっぴ 05/3/12(土) 19:06 回答
【23089】Re:ファイルを開く時のエラー回避 かみちゃん 05/3/12(土) 19:25 発言
【23090】Re:ファイルを開く時のエラー回避 ちゃっぴ 05/3/12(土) 19:59 発言

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