式が複雑すぎます

ExcelのVBA(マクロ)で、収支レポートを作成する処理を以前作成した。
今はそれに対する機能追加を行っている。

元々は、4つのファイルを読んで1シートの表にまとめて出力、というものだった。
それが何やかんやと話が膨らみ、今では読み込むファイルの数が10に。
しかも処理のパターンも複雑になって、プログラムはえらいことになってきた。

条件分岐や繰り返し処理が入れ子入れ子で折り重なり、作った本人でさえ迷子になってしまいそうな迷路に。
こんなことならもっとファンクション・サブルーチンの切り出しをしっかりしておけばよかった、と後悔しても後の祭り。
(初回コーディング時から日程に余裕がなかった、というのもあるが)

それでも今回の要件を満たすコーディングを行い、いざテスト。
デバッグモードで1行ずつステップ実行し、データの編集の様子をチェック。
うん、問題ない。
さすが俺。


じゃあ、今日の締めくくりに全体を通して流してみよう、とデータをそろえて実行!
・・・と、ほどなくこんなエラーメッセージが。


式が複雑すぎます。


え?何?
コケた処理自体は対して複雑ではない。
っちゅうか、今まで問題なく動いていた処理である。
確かにそのちょっと上の処理が追加になり、条件分岐も増え、ややこしくはなっているが。

原因を特定するべく、いろいろなパターンを試してみた。

デバッグ実行で動かすとコケない。
また、問題の箇所の手前で、空のメッセージボックスを出すようにするだけでもコケない。
つまり、途中で休憩をいれてあげながら処理をさせるとコケない。
でも、一気に処理を流すとコケる。

沢山の分岐と繰り返しで頭の中がいっぱいいっぱいになって、「うわぁ~、わからんようになってしもた~」と混乱している様が目に浮かぶ。
そんな人間味あふれたエラーメッセージ。

・・・などと笑っている場合ではない。


コーディングのミスならそれを修正すればよいだけだが、コード的にはは合っているのにExcelがてんぱってしまってエラー、と言われると、どうしてよいのやら。


人間が目で見て(一応)理解できる程度の処理なのに、コンピュータがアップアップしてどうすんねん。

骨組みから作り直さなきゃならんのかい?

関連記事

Trackback [0] | Comment [2] | Category [仕事] | 2009.02.20(Fri) PageTop

Trackback


この記事にトラックバックする(FC2ブログユーザー)



Comment

Private

 


あぁ~
昔、Accessのクエリーとかでよくそいつにやられたなぁ…苦笑

  クエリーが複雑すぎます

とかも出てきたきがする…



わけなくても答えは得られるのに、クエリーを分けたりした記憶があるなぁ…
もう10年近く前の話だけど 笑


2009.02.23(Mon) 02:47 | こぎっちの部下 [URL] | 編集 | ▲PageTop

DATE型の変数をString型に変えたらエラーが消えた。
根本的な解決にはなっていないけど、String型でも処理には問題ないからこれでよしとしよう。


・同じIF文にあるString型の変数は問題ない。
・Date型の変数を触ろうとすると途端にエラーになる。

という症状と、

・Date型は日付だけでなく時分秒も持つ。
・浮動小数点式を深い階層下で扱うとエラーになることがある。

というネットの情報から解決策(逃げ道)をひらめいた。

VBAへぼいぞ。


ちゅうか、10年前ならいざ知らず、今頃VBA触ってていいのか、俺。

2009.02.23(Mon) 21:46 | こぎずむ管理人 [URL] | 編集 | ▲PageTop

 カレンダー
06 | 2025/07 | 08
- - 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 - -
 Twitter

Twitter

 最近の記事+コメント
 リンク
 RSSリンクの表示
 QRコード(当サイトURL)
携帯からも閲覧可能です。
QRコード
 カテゴリー
 月別アーカイブ