アフィリエイト広告を利用しています
G-QVESCNWRVH

2023年05月05日

会計ソフトが固まった・・・雨降って地字固まる(笑)

教会会計入金伝票イメージ.jpg

●会計処理

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のダイエットに成功したようなーーーー(*^▽^*)
この記事へのコメント
コメントを書く

お名前:

メールアドレス:


ホームページアドレス:

コメント: 必須項目

この記事へのトラックバックURL
https://fanblogs.jp/tb/11971709

この記事へのトラックバック
ファン
検索
<< 2024年05月 >>
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31  
最新記事
写真ギャラリー
最新コメント
タグクラウド
カテゴリーアーカイブ
プロフィール
Y.Taki@AS400さんの画像
Y.Taki@AS400
IBM AS/400で稼働するシステムの開発・追加を担当して30年以上になります。使えば使うほどこの AS/400 が好きになりました。 こんなSEがいろいろな視点から様々な業務などについて語ります。
プロフィール