Excel VBA オーバーフローというエラーが出てくるとき
ココナラでExcel VBA関連のサービスをやっているさべろくと申します。閲覧いただきありがとうございます。いきなり本題ですが、Excel VBAで下記エラーが出るときがあります。これは指定したデータ型の範囲を超えた場合に出てくるエラーです。例えばInteger型で変数を宣言した場合は、-32,768~32,767の範囲に収まっていないと上記エラーが出ます。直す方法はもっと大きな範囲を扱える型にすることです。例えばLong型にすれば-2,147,483,648〜2,147,483,647の範囲の数値を扱えます。ここまではよく記事に書かれている内容です。ちょっとだけ変わった事例のお話をします。それはLong型を超えた場合にどうすればいいのか?という話です。仕事でLong型を超えるケースに遭遇しました。数学で扱われる組み合わせを列挙する問題です。例えば、10個のボールから4個選んだときの組み合わせのパターンを列挙しなさいといった問題です。実際には10個から4個選んだ組み合わせの場合は、セルに「1 2 3 4」「1 2 3 5」のように組み合わせを記載していくというものです。下記の通りExcelを用意しました。総数を指定して抜き取り数を指定すると、通り数が算出されます。通り数はExcelの関数であるCOMBINを使って算出しています。実行ボタンを押すと1シートに下記のように表示されます。※これは10通りから3つ選んだときの結果です。総数と抜き取り数を自由に設定できるようにしているため、ここで問題が起きました。通り数がエクセルの1シートのセルの数(約171億)を超えてしまい、書ききれず
0