カテゴリー
Microsoft

【Excel VBA】オブジェクトがブーリアンに変換可能か判定するコード!

ポイント

  • VBA には対象オブジェクトがブーリアンに変換可能か確かめられるプロシージャを見つけられなかった。。。
  • 引数をブーリアン型へ変換する CBol プロシージャを使い、確かめる方法を採った。
  • 変換できれば 「True」を返す。
  • 変換できなければエラーを発生させるので、それをキャッチして変換できなかった結果「False」を返す。
  • 例外を判定に使うのは、例外の本来の用途の観点から、本当は採用したくなかった。。。

VBA コード

Option Explicit

' オブジェクトがブーリアンかどうかを確かめる。
Sub Test()
  If IsBoolean("False") Then
    Debug.Print "Boolean!"
  Else
    Debug.Print "Not Boolean><"
  End If
End Sub

''' <summary>
''' 引数がブーリアンに変換可能か判定します。
''' </summary>
''' <param name="vntTarget">判定対象オブジェクト</param>
''' <returns>ブーリアンに変換可能な場合は True、そうでない場合は False</returns>
Private Function IsBoolean(ByVal vntTarget As Variant)
  On Error GoTo ErrorHandler

  Dim blnCheck As Boolean
  blnCheck = CBool(vntTarget)
  IsBoolean = True
  Exit Function

ErrorHandler:
  IsBoolean = False
End Function

おわりに

以上のページが参考になりました!ありがとう存じます!

例外を使わないためには何種類かの判定を書かなかればならないかしら。。。><

以上です。

コメントを残す