EXCELで仕事をする上で外せないダメ言語、その名も『Visual Basic for Application』。略してVBAのお話。VBAを使う上で、C++なんかを使っていた人にとって欠かせない要素が型だと思う。その型について少し。
- VBAでの型表現
- チェックのシステム
- アップキャストの仕組み
- アップキャストは「上位クラスで宣言された変数に代入する」これだけでできます。
- ダウンキャストの仕組み
- ダウンキャストも、インスタンスに合う型で宣言された変数に代入すればできます。
- キャストのタイミング
- キャストは「変数への明示的な代入でしか行われない」です。つまり、以下のような時に限ります。
Sub test() Dim u as Variant Dim d as C dim i as new C 'instance Set u = i 'up cast Set d = u 'down cast call f(u) 'ここでは自動ダウンキャストされずにエラー End sub Function f(x as C) as Integer Dim i as Long f = i 'ここでは自動ダウンキャストされずにエラー End Function
とまあ、型表現と型チェックタイミングが腐ってるので注意。MicrosoftはVBAを上位互換を保ったまま別のものに置き換えないのはなんでや!!