書き込み専用プロパティ

 実は、今日になって初めてこれを利用している COM Object を見たような気がします。それほど滅多にないものだと思います。しかも、

  ' set_position に必要なパラメータを設定
  obj.left = 10
  obj.top = 10
  obj.right = 80
  obj.bottom = 40

  ' 書き込み専用プロパティ
  obj.action = action_set_position   ' 定数を代入

このような使い方をします。なぜ書き込みプロパティなのかまったく不明です。これは例が悪いのですが、最初のほうのプロパティ群は読み書き両用で多数の action から共有されるものもあるので、そんなにひどいとは思わないのですが

  ' 必要なパラメータを設定
  obj.left = 10
  obj.top = 10
  obj.right = 80
  obj.bottom = 40

  ' action 関数にするとか
  obj.action( action_set_position )

  ' 引数なしの action 名の関数で機能を分けるとか
  obj.move( )
  obj.resize( )

こういうのが普通の設計だと思うんですが...。
しかも、action でエラーが発生したかどうかを調べるために、読み取り専用のプロパティ errorcode が 0 か 0 以外かを調べる必要があるのです。関数なら戻り値で表現できるのに(笑