しろまるライフへようこそ!生活に役立つ情報を提供していきます!

エクセルVBAで食物連鎖の様子をプログラミングしてみた

エクセルVBAでプログラミングをやってみようという人のための参考例として、食物連鎖や生態系をシミュレーションできるソフトを作成しました。あくまで、この記事はプログラミング重視の内容になっていて、食物連鎖のシミュレーションソフトとしては学校の自由研究程度であることをご了承頂ければと思います。m(__)m

スポンサーリンク

ファイルをダウンロード

まず実際にエクセルファイルを使ってみたい方はこちらからダウンロードしてください。

食物連鎖

ファイルを開いて「コンテンツの有効化」をクリックするとトップ画像のようになります。

※プログラム動作時に中止したい場合は、「Ctrl」+「Break」を押してください。

食物連鎖ルール

はじめにどのような食物連鎖ルールにするか決める必要があります。

ここで登場する動物などは下記の4種類とし、それぞれ増減するルールを決めます。また、シミュレーションする領域をここでは「アフリカ」としておきます。

ルールは以下の通りです。

ライオン

  1. ライオンの周囲にウサギがいれば、ライオンはウサギを食べライオンが1匹増える。
  2. アフリカ内のライオンは1日に3匹死んでしまう。

ウサギ

  1. ウサギの周囲に草があれば、ウサギは草を食べウサギが1匹増える。
  2. ライオンに食べられると死ぬ
  3. アフリカ内のウサギは2日で1匹死んでしまう。

  1. ウサギの周囲に草があれば、草は食べられてなくなる。
  2. 草はアフリカ内で1日15増える

  1. ライオン、ウサギ、草がない何もない領域

 

ルールのイメージ図は下のようになります。

プログラミング

今回のシミュレーションではエクセルのセルの領域を利用して、その中で食物連鎖の様子を確認していきます。

具体的には50×50のセルの領域の中にライオン、ウサギ、草、土をランダムに配置し、条件に合致したときにそれぞれの個体を増減させるというものです。

ここでは土のセルを0、草を1、ウサギを2、ライオンを4とします。

それでは実際に増減例を見てみましょう。

増減例

ウサギ

これはウサギの右下に草があります。なので、ウサギの数が増えて、草が減ります。

ライオン

このケースはライオンの左上にウサギがいるケースです。ライオンが増えて、ウサギが減ることになります。

プログラミング構成

それでは実際にプログラミングコードを見てみましょう。プログラムの種類は全部で6つになります。「開発」⇒「マクロ」ボタンを開くとこのような画面になります。

この状態でいずれかのプログラムを選択し、編集をクリックするとソースコードが確認できます。ポイントのみですがそれぞれのソースコードを説明していきます。

P1_初期化

P1_初期化はライオンやウサギの総数をデフォルト値に戻す関数になります。

P2_再配置

P2_再配置は50×50のマスの中にライオン、ウサギ、草、土をランダムに配置する関数になります。また、ここでライオン、ウサギ、草の上限数を超えた場合にはプログラムを停止するようにしています。

P3_色塗り

P2_再配置の関数で場所が決まったら、視覚的にわかりやすいくするため色塗りを行います。それぞれの番号に応じた色を塗っていきます。

P4_1日経過させる

ここがプログラムの一番重要なところになります。P4_1日経過させる 関数では周りのセルの状況を見て各個体を増やすか減らすかの判定を行っています。

また、冒頭の説明では省略したのですが、ライオンやウサギが増える条件に確率を付け加えています。理由としてはこの確率のパラメータで微調整しないとすぐにライオンやウサギが絶滅してしまうからです。

慣れている人は確率のパラメータを変更して挙動を確認してみるのもいいかと思います。

P5_100日経過させる

P5_100日経過させる 関数はP4_1日経過させる関数を100回繰り返しているだけになります。連続でシミュレーションするときに使用します。

P6_1000日経過させる

こちらも同様にP4_1日経過させる関数を1000回繰り返しているだけになります。

シミュレーション動作確認

それでは実際にシミュレーションしてみましょう。ダウンロードしたファイルはこのようになっています。

入力

黄色のセルで塗られた3か所にシミュレーションしたい数字を入力してください。デフォルトの値は推奨値です。ライオンとウサギの上限数は500、草の上限数は1000に設定しています。

ボタン

ボタンはリセットボタンと経過日数を指定するボタンがあります。リセットボタンを押すと経過日数が0にリセットされ、ライオン、ウサギ、草の数がデフォルト値に戻ります。

指定した経過日数に対応するボタンを押すとシミュレーションが開始されます。

デフォルトの数値だと500日を過ぎたあたりからウサギの状況が苦しくなり、絶滅するケースが多く見られます。ソースコードを理解できた方は、自分でパラメータを変更してみてもいいかもしれません。

 

スポンサーリンク

最新情報をチェックしよう!