ポイント
- 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
おわりに
以上のページが参考になりました!ありがとう存じます!
例外を使わないためには何種類かの判定を書かなかればならないかしら。。。><
以上です。