2016.09.07 Wednesday
ワードのvbaでスタック領域が足りなくなった話
ワードのVBAでクレームツリーを作るプログラムをだいぶ前に作った。多数項従属も自動的に展開してツリーにしてくれるし、従属関係を反映した請求項ごとのテキストを表示してくれる、自分でいうのもなんだが優れもので、便利に使っている。
ところが、今日、事務所の他の担当者が作成したクレームでツリーを作ろうとしたら、「スタック領域が不足しています」というメッセージが出て動かない。「スタック」という文言からもわかるとおり、再帰的な処理をする場合によく出るエラーらしい。確かに私のプログラムでも再帰的処理をしている。が、今まで非常に安定していたのになぜこうなったのか、プログラムをみていてもよくわからなかった。
他の出願のクレームで試してみるとなんの問題もなく動く。そこで、どうやら対象になっているクレームがおかしいのかもしれない、と考えた。
ところが、今日、事務所の他の担当者が作成したクレームでツリーを作ろうとしたら、「スタック領域が不足しています」というメッセージが出て動かない。「スタック」という文言からもわかるとおり、再帰的な処理をする場合によく出るエラーらしい。確かに私のプログラムでも再帰的処理をしている。が、今まで非常に安定していたのになぜこうなったのか、プログラムをみていてもよくわからなかった。
他の出願のクレームで試してみるとなんの問題もなく動く。そこで、どうやら対象になっているクレームがおかしいのかもしれない、と考えた。