VB6のSetとLet
今日のハマリ話。
FormからFormを開くとき、自身の参照を相手に渡しておいて、開かれたフォーム側で開いた方のフォームの処理を呼び出したい、って事をVB6でやる必要がでて。
Private frm As Form … frm = 呼び出しForm
という感じで、Formで宣言しておいた変数に、呼び出しのFormを渡そうとしたのだが、実行時に怒られる。型が違うとかなんとか。
Variantでごまかそうとしたけども、そういう問題でもないらしい。
で、ちょっとググってみた結果、参照を代入する場合、VB6だと Set ○ = △ という形式で呼び出さないといけないらしい。
通常の、 ○ = △ という書き方は、実は Let ○ = △ の省略形で、その場合は値の代入になるらしい。
ようするに、参照を代入するべき所を、値を代入しようとして実行時に怒られていたわけだ。なるほど。
私がこの業界に入ったとき、既にVB.NETがリリースされていて、VB6とかは時代遅れの言語だと思っていたが。
実際に仕事に使って色々とやってみると、かなり面白いし結構深い。
使い込んでみる価値がある言語だと思った(VBAマクロ使えると、色々と省力化できたりして便利、ってのもあるし)。