• ベストアンサー

「IsError(var)」と「 VarType(var) = vbE

「IsError(var)」と「 VarType(var) = vbError」の使い分け。 If IsError(var) then   MsgBox "変数varはエラーです。" End If If VarType(var) = vbError then   MsgBox "変数varはエラーです。" End If 両者に大きな違いはありますでしょうか? また、他に同様の条件分岐の方法があれば教えて下さい。 こういった、「エラーであるかどうかによる条件分岐」を書く場合、 どのように書いたらよいでしょうか。 どなたか教えて下さい、宜しくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • yu_tang
  • ベストアンサー率81% (26/32)
回答No.1

> 両者に大きな違いはありますでしょうか? 動き的には無いと思います。 もしあったら、どなたか回答付けるでしょうから、勉強させてもらいます。 > また、他に同様の条件分岐の方法があれば教えて下さい。 If TypeName(var) = "Error" then > こういった、「エラーであるかどうかによる条件分岐」を書く場合、 > どのように書いたらよいでしょうか。 エラーかどうかの二択なら If 文ですから、戻り値が Boolean の IsError をそのまま使うのが自然です。 If IsError(var) then 一方、VarType は型を示す列挙定数を返す (二択ではない) ので、 Select 文に使うのが自然です。 Select Case VarType(var) もちろん逆に使っても誰も咎めませんが、単に読みにくくなるだけ のような気がします。

nbsp0606
質問者

お礼

>動き的には無いと思います。 >If TypeName(var) = "Error" then >エラーかどうかの二択なら If 文ですから、戻り値が Boolean のIsError をそのまま使うのが自然 >一方、VarType は型を示す列挙定数を返す (二択ではない) ので、Select 文に使うのが自然 知りたいこと全てにお答え頂き、ありがとうございます。 文章も読みやすく、とてもよく分かりました。 なお、お礼が遅くなり、申し訳ありませんでした。

関連するQ&A