ErrObjectクラスはインスタンス化できない?

ErrObjectクラスはインスタンス化できない?

よく、「Errオブジェクト」という言葉を目にする。

エラー処理に便利なのでよく使うのも事実。

今朝、不意に「オブジェクト? じゃあ、インスタンス化できるのか?」と思った。

やってみた

テキトーにプロシージャを作って、

Dim errObj As Err

まで打ち込んでみると、

f:id:akashi_keirin:20190429101249j:plain

フツーにErrObjectが入力候補に出てくる。

も、もしかして……。期待が高まる。

改行して、

Set errObj = New Err

まで打ち込んでみると、

f:id:akashi_keirin:20190429101252j:plain

またしてもErrObjectが入力候補に! もう辛抱たまらん!

さらに改行して、

errObj.

と入力すると……

f:id:akashi_keirin:20190429101256j:plain

うひょーーーー! もう昇天寸前!

結局、次のようなコードが完成。

リスト1 標準モジュール
Public Sub disposable01()
  Dim errObj As ErrObject
  Set errObj = New ErrObject
  errObj.Number = 1
  Debug.Print errObj.Number
End Sub

ErrObjectオブジェクトのNumberプロパティに「1」を代入し、その値をイミディエイトに出力しようという魂胆。

実行

期待に胸躍らせながら実行!

f:id:akashi_keirin:20190429101258j:plain

え? どういうことっすか???

何か参照設定が足りないとか?

詳しい人、教えろ教えてください。

おわりに

もしかして、ClassではなくModuleなんではないか、と思いましたが、オブジェクト ブラウザーで見る限り、

f:id:akashi_keirin:20190429101301j:plain

Classでした。