VBA を使用して配列の中央値を計算すると、中央値関数がゼロに評価される場合に、Excel 2010 がクラッシュする (Windows XP は Excel が「応答していません」と言う) という問題があります。残念ながら、問題は特定のコード セットのコンテキストでのみ再現可能です (デバッグ用に簡略化されたバージョンを作成しようとすると、問題は発生しません)。とはいえ、次の理由からこの問題を興味深いと感じる人もいると思います。
application.worksheetfunction.median が呼び出されている間にクラッシュが発生します。VBA はその呼び出しを通過できません。その後ゼロでダイビングする問題ではありません。
配列が非常に小さい場合でもクラッシュが発生します (例: 8)。
効果的な回避策は、各配列項目に小さな定数を追加し、中央値を計算してから、すぐに各配列値から定数を減算することです。これにより、正しい答えが得られるようです。しかし、Excel がこの回避策を必要とするのではないかと心配しています。
この問題は、並べ替えを伴う別のワークシート関数、パーセンタイル関数でも発生します。