ErrObjectクラスはインスタンス化できない?
ErrObjectクラスはインスタンス化できない?
よく、「Err
オブジェクト」という言葉を目にする。
エラー処理に便利なのでよく使うのも事実。
今朝、不意に「オブジェクト? じゃあ、インスタンス化できるのか?」と思った。
やってみた
テキトーにプロシージャを作って、
Dim errObj As Err
まで打ち込んでみると、
フツーにErrObject
が入力候補に出てくる。
も、もしかして……。期待が高まる。
改行して、
Set errObj = New Err
まで打ち込んでみると、
またしてもErrObject
が入力候補に! もう辛抱たまらん!
さらに改行して、
errObj.
と入力すると……
うひょーーーー! もう昇天寸前!
結局、次のようなコードが完成。
リスト1 標準モジュール
Public Sub disposable01() Dim errObj As ErrObject Set errObj = New ErrObject errObj.Number = 1 Debug.Print errObj.Number End Sub
ErrObject
オブジェクトのNumber
プロパティに「1
」を代入し、その値をイミディエイトに出力しようという魂胆。
実行
期待に胸躍らせながら実行!
え? どういうことっすか???
何か参照設定が足りないとか?
詳しい人、教えろ教えてください。
おわりに
もしかして、ClassではなくModuleなんではないか、と思いましたが、オブジェクト ブラウザーで見る限り、
Classでした。