EXCEL VBA で 色々なプログラムを書いている
自分用というより ボランティアでの活動が多い
別のブックが開いている時や 開いた時の動きを捉えるために
ThisworkbookのPrivate Sub Workbook_Openを使っているが
「ある条件」で 動作しないことがある
「ある条件」とは まだ保存していないブックが開いているときに
This Workbookを開く場合だが 必ず発生するわけではないので
原因を特定できないでいる
試行錯誤の結果 Private Sub Workbook_Openから
Auto Openに飛ばして再処理しているが
なんだか美しくない
空白のブックを新規作成してもイベントが発生しないし
「最初に地下鉄の電車をどうやって入れたのかなぁ。」みたいな
眠れなくなりそうな状況である
......ところが
そうだ クラスモジュールがあった
クラスモジュールでWorkbook_Openのイベント監視を行い
同様にNewWorkbookのイベントも加えたところ
ほぼ完璧な動作が実現した
冷静に考えれば当たり前の動きなのだが 目からうろこである
自分でも分からなくなる程の 複雑怪奇なプログラムだったが
クラスモジュールのお蔭で
僅かな行数に収まった
当然Auto Openも不要となり 実にスッキリ
......それにしても地下鉄が...あの漫才も気になる今日の私ではある
コメント