●会計処理
Excelマクロで組んだ教会専用の会計ファイル
こないだまで、変な挙動をし始めて閉口していました。
なぜなら、元帳にデータを入力したら・・・固まるんです
それまで・・・ちゃんと動いていたのに突然Σ( ̄ロ ̄lll)ガーン
つまり、マクロ自体に問題は無い筈・・・と思いたい
すると、問題解決が出来ない
入力データ自体にも、代わり映えのしない入力だから
●しらみつぶし
なので、どのようにどこにデータを入力したら固まるか
それを調べ始めました
最初は、セルに一斉に貼り付けました。
すると・・・固まりました。
固まったら、タスクマネージャーを開いて
Excel全体を強制終了させる
これって、結構めんどくさいです。
●気づいたこと
ある時、固まってはいても
開発環境に移れたら(何度か[開発]タブをクリック)
イミディエトウインドウ(直接実行ウインドウ)で実行できることに気付きました。
もう、即、Application.Quit を実行
すると・・・・また固まってしまって
今度は、
ThisWorkBook.Saved = True
Application.Quit
を実行したらすっきり終わってくれました。
そして、再起動
●気づいた
ある特定の関数が、非常に無駄の多い動きだったこと
これを修正しました。
どんな関数かと言うと
渡された数字を文字化して、指定された位の数字を返すと言う自作関数
例えば、 @SliceNum( 123456, 4 ) ならば、3 を返すみたいに・・・
ただ、会計処理に使用する関数なので、
関数自体に渡される引数は・・・同じ数値の場合が多い
つまり、
@SliceNum( 123456, 1 )
@SliceNum( 123456, 2 )
@SliceNum( 123456, 3 )
@SliceNum( 123456, 4 )
@SliceNum( 123456, 5 )
@SliceNum( 123456, 6 )
@SliceNum( 123456, 7 )
@SliceNum( 123456, 8 )
みたいに呼び出されるわけです。
すると、この関数は、一回一回数値を文字列に変換します
結果は
@SliceNum( 123456, 1 ) ⇒ 6
@SliceNum( 123456, 2 ) ⇒ 5
@SliceNum( 123456, 3 ) ⇒ 4
@SliceNum( 123456, 4 ) ⇒ 3
@SliceNum( 123456, 5 ) ⇒ 2
@SliceNum( 123456, 6 ) ⇒ 1
@SliceNum( 123456, 7 ) ⇒ ¥
@SliceNum( 123456, 8 ) ⇒
ただ、この処理が非常に無駄でした。
●効率化後
固まる現象は一切起こらなくなりました。
気持ちいいほどサクサク動くように
関数の結果自体は同じですが、動きがまるで
20kgのダイエットに成功したようなーーーー(*^▽^*)
【このカテゴリーの最新記事】
-
no image
-
no image
-
no image
-
no image