Archive for the ‘VBA’ Category

現時点で予定しているVer6.0の仕様です。

  • [tag]Class Module[/tag]の使用によりコードを簡素化
    前にも書いたとおりTextBox等におけるAfterUpdateは使えないようですが、他のEventでは動作をClass Moduleにまとめてしまうことにより、結構コードを短く出来るようです(今までが長すぎたとも言える)。
  • Rich Formの実装
    • カラー・パターンを幾つか用意
      Ver5.0ではシンプルさを狙って意図的にフォームの色をDefaultのままにしておきましたが、今度は5パターンくらいの色を用意し、ユーザーの好みで切り替えられるようにしようかと。欲を言えばユーザーがパターン設計できる機能も付けられればベストかな。しかし一方で、あまり本体の機能と関係ないところにリソースを消費するのもなんだか…という気もします。
    • 選択や入力時に点滅して変更を見た目に分かりやすくする。
      OptionBoxをクリックしたときや、数値を入力したときに文字や数字が点滅して、点滅が終わった後も他とは違う色が残っていれば、今、ユーザーにとって何をしているのか理解し易いかもしれません。しかし、これもリソースを喰いそうだなぁ。
    • 全てのアクションをForm内にまとめる
      ここで言う「アクション」とは実施するファイナンスの種類を指しますが、今までメニューバー(ツール・バー)をクリックすることによって動作を開始していたところを、全てForm内にまとめてしまえば、メニューが簡素化される筈….。小計作成等は元のまま残りますが。
    • 壁紙的な機能の追加
      ユーザーが好きな画像をFormに貼り付けられるようにすれば、少しは愛着をもって頂けるかもしれません。
      Ver6 Under Construction
    • エラー・メッセージにMsgBoxを使わない。
      未入力項目等があったときMsgBox関数を使うのは便利なんですが、ちょっと無愛想すぎます。カラフルなMsgBoxを表示するAddinを作ってしまった方もいるようですが、まぁそこまでしなくとも、もうちょっとセンスよくしたいものです。
  • 新株引受権付社債は非採用
    もう、そろそろ新株引受権が残っているという会社もなくなってきたかと…..。

[tags]資本政策案,VBA[/tags]

MOUGのスキルアップ講座に「クラスモジュールを使った究極のVBAプログラミング」と題されたコラムの5ページ目にコントロール配列に関する記述があり、フォーム上に配置した5つのコマンドボタンをクリックしたときに走らせるコードをひとつで済ませる方法が説明されています。通常は各ボタンに共通した動きをさせるプロシージャを用意してサブルーチン化し、それぞれのイベントプロシージャから走らせる、という面倒なことをしなければならないわけですから、ここで紹介されているやり方はCoolです。

これと同じようなことをテキストボックスにおいてもやってみたいと考えて試してみたのですが、何故かイベントプロシージャには存在するAfterUpdateイベントがクラスモジュールにはない様なのです。VBEのオブジェクトブラウザから見ても、MSForms.TextboxのメンバにAfterUpdateはありません。イベントとしてChangeとかDblClickとかはあるのですが、テキストボックスという性質上、やはりユーザーが入力を完了した時点で動作をさせたいわけで、Changeだと一文字打ち込むごとに動いてしまうのでよろしくありません。

何をさせたいのかというと、現行バージョンでも行っている3桁ごとにカンマを入れることに加え、次回からは入力が終了した時点でBlinkしたりフォント色を変えたりさせれば無愛想なフォームに多少は彩が出るのかな、と(余計と思われる方もいるかもしれませんが…)。

検索してみるとメンバにAfterUpdateがあるのはMSForms.Controlだけのようですねぇ。クラスモジュールにMSForms.Controlとして用意した変数に無理やりテキストボックスを入れてAfterUpdateイベントのメソッドを書いてみましたが見事はねられました。
何故フォームに存在するイベントがクラスモジュールでは使えないのか不思議です。