あんにんにっき。

日々思ったことや、おこったことを記録するブログ。要するに日記。

VB6のSetとLet

 今日のハマリ話。
 FormからFormを開くとき、自身の参照を相手に渡しておいて、開かれたフォーム側で開いた方のフォームの処理を呼び出したい、って事をVB6でやる必要がでて。

Private frm As Form
…
frm = 呼び出しForm

 という感じで、Formで宣言しておいた変数に、呼び出しのFormを渡そうとしたのだが、実行時に怒られる。型が違うとかなんとか。
 Variantでごまかそうとしたけども、そういう問題でもないらしい。


 で、ちょっとググってみた結果、参照を代入する場合、VB6だと Set ○ = △ という形式で呼び出さないといけないらしい。
 通常の、 ○ = △ という書き方は、実は Let ○ = △ の省略形で、その場合は値の代入になるらしい。
 ようするに、参照を代入するべき所を、値を代入しようとして実行時に怒られていたわけだ。なるほど。


 私がこの業界に入ったとき、既にVB.NETがリリースされていて、VB6とかは時代遅れの言語だと思っていたが。
 実際に仕事に使って色々とやってみると、かなり面白いし結構深い。
 使い込んでみる価値がある言語だと思った(VBAマクロ使えると、色々と省力化できたりして便利、ってのもあるし)。