式が複雑すぎます
ExcelのVBA(マクロ)で、収支レポートを作成する処理を以前作成した。
今はそれに対する機能追加を行っている。
元々は、4つのファイルを読んで1シートの表にまとめて出力、というものだった。
それが何やかんやと話が膨らみ、今では読み込むファイルの数が10に。
しかも処理のパターンも複雑になって、プログラムはえらいことになってきた。
条件分岐や繰り返し処理が入れ子入れ子で折り重なり、作った本人でさえ迷子になってしまいそうな迷路に。
こんなことならもっとファンクション・サブルーチンの切り出しをしっかりしておけばよかった、と後悔しても後の祭り。
(初回コーディング時から日程に余裕がなかった、というのもあるが)
それでも今回の要件を満たすコーディングを行い、いざテスト。
デバッグモードで1行ずつステップ実行し、データの編集の様子をチェック。
うん、問題ない。
さすが俺。
じゃあ、今日の締めくくりに全体を通して流してみよう、とデータをそろえて実行!
・・・と、ほどなくこんなエラーメッセージが。
式が複雑すぎます。
え?何?
コケた処理自体は対して複雑ではない。
っちゅうか、今まで問題なく動いていた処理である。
確かにそのちょっと上の処理が追加になり、条件分岐も増え、ややこしくはなっているが。
原因を特定するべく、いろいろなパターンを試してみた。
デバッグ実行で動かすとコケない。
また、問題の箇所の手前で、空のメッセージボックスを出すようにするだけでもコケない。
つまり、途中で休憩をいれてあげながら処理をさせるとコケない。
でも、一気に処理を流すとコケる。
沢山の分岐と繰り返しで頭の中がいっぱいいっぱいになって、「うわぁ~、わからんようになってしもた~」と混乱している様が目に浮かぶ。
そんな人間味あふれたエラーメッセージ。
・・・などと笑っている場合ではない。
コーディングのミスならそれを修正すればよいだけだが、コード的にはは合っているのにExcelがてんぱってしまってエラー、と言われると、どうしてよいのやら。
人間が目で見て(一応)理解できる程度の処理なのに、コンピュータがアップアップしてどうすんねん。
骨組みから作り直さなきゃならんのかい?
Trackback
この記事にトラックバックする(FC2ブログユーザー)
Comment
- あぁ~
昔、Accessのクエリーとかでよくそいつにやられたなぁ…苦笑
クエリーが複雑すぎます
とかも出てきたきがする…
わけなくても答えは得られるのに、クエリーを分けたりした記憶があるなぁ…
もう10年近く前の話だけど 笑
2009.02.23(Mon) 02:47 | こぎっちの部下 [URL] | 編集 | ▲PageTop
- DATE型の変数をString型に変えたらエラーが消えた。
根本的な解決にはなっていないけど、String型でも処理には問題ないからこれでよしとしよう。
・同じIF文にあるString型の変数は問題ない。
・Date型の変数を触ろうとすると途端にエラーになる。
という症状と、
・Date型は日付だけでなく時分秒も持つ。
・浮動小数点式を深い階層下で扱うとエラーになることがある。
というネットの情報から解決策(逃げ道)をひらめいた。
VBAへぼいぞ。
ちゅうか、10年前ならいざ知らず、今頃VBA触ってていいのか、俺。
- 2011年10月 (3)
- 2011年09月 (15)
- 2011年08月 (2)
- 2011年07月 (14)
- 2011年06月 (12)
- 2011年05月 (11)
- 2011年04月 (19)
- 2011年03月 (9)
- 2011年02月 (15)
- 2011年01月 (22)
- 2010年12月 (9)
- 2010年11月 (14)
- 2010年10月 (7)
- 2010年09月 (12)
- 2010年08月 (6)
- 2010年07月 (20)
- 2010年06月 (13)
- 2010年05月 (4)
- 2010年04月 (1)
- 2010年03月 (6)
- 2010年02月 (8)
- 2010年01月 (9)
- 2009年12月 (3)
- 2009年11月 (10)
- 2009年10月 (14)
- 2009年09月 (15)
- 2009年08月 (7)
- 2009年07月 (23)
- 2009年06月 (13)
- 2009年05月 (11)
- 2009年04月 (11)
- 2009年03月 (11)
- 2009年02月 (17)
- 2009年01月 (20)
- 2008年12月 (15)
- 2008年11月 (15)
- 2008年10月 (21)
- 2008年09月 (16)
- 2008年08月 (23)
- 2008年07月 (18)
- 2008年06月 (12)
- 2008年05月 (16)
- 2008年04月 (17)
- 2008年03月 (17)
- 2008年02月 (10)
- 2008年01月 (15)
- 2007年12月 (20)
- 2007年11月 (21)
- 2007年10月 (1)
- 2007年09月 (7)
- 2007年08月 (27)
- 2007年07月 (6)
- 2007年06月 (18)
- 2007年05月 (6)
- 2007年04月 (18)
- 2007年03月 (21)
- 2007年02月 (20)
- 2007年01月 (17)
- 2006年12月 (15)
- 2006年11月 (16)
- 2006年10月 (26)
- 2006年09月 (47)
- 2006年08月 (11)
- 2006年07月 (16)
- 2006年06月 (18)
- 2006年05月 (15)
- 2006年04月 (19)
- 2006年03月 (21)
- 2006年02月 (18)
- 2006年01月 (17)
- 2005年11月 (15)
- 2005年10月 (2)
- 2005年09月 (3)
- 2005年07月 (8)
- 2005年06月 (8)
- 2005年03月 (4)
- 2005年02月 (3)
- 2004年12月 (1)
- 2004年11月 (15)