今回は、時刻と賽の目で天候が決まる場合の天候設定機能を追加する。
1)機能概要
A)下図のように天候変化シートを追加し、乱数(*1)を基にして天候を決める。
(*1)サイコロ2ヶに相当する1〜36、1ヶに相当する1〜6を使い分ける。
B)下図のように天候シートのD列20、26〜28行目(色塗り部分)を変更して、予め決めておいた
数値ならば、天候変化シートの可変データを参照する(IF文を使ったEXCEL機能)。
89=LOSの最大HEX、 79=泥濘の移動力低下
2)マクロとEXCEL関数
A)天候変化シートのA列からH列は、各ゲームで指定された賽の目を参照して作った定数(手動作成)。
B)I列からL列の1,2行目は次の内容で、可変になる天候を決める(EXCEL機能、EXCEL関数)。
・1行目は標題で手動作成。
・J2は時間変化シートから参照した天候データの数値。
・K2は乱数を参照(1〜36)。
・L2はJ2×100+K2で計算した検索キー。
・I2はL2の検索キーでG列を検索して求めたC列の天候。
C)J列からL列の4〜29行目は次の内容で、LOSの最大を決める(EXCEL機能、EXCEL関数)。
用途は、アウエルシュタットの霧の場合のLOSを決める為のもの。
・4行目は標題で手動作成。
・K5は時刻変化シートの現在時刻(時)を参照。
・L5はK5を検索キーとしてK列を検索し、該当するL列の内容を設定。
・K列とL列の6〜29行目は定数で99(無限と定義した値)。
但し、可変部分は乱数(1〜6)にゲームで指定した値を加算したLOS。(7〜9時)
D)N列からQ列の10〜12行目は次の内容で、雪の天候を決める(EXCEL関数、マクロ)。
用途は、アイラウの天候を決める為のもの。
・10,11行目は標題で手動作成。
・O2は乱数を参照(1〜6)。
・N2、P2、Q2はマクロ4で設定する。マクロ4の処理概要は、以下の通り。
前回の天候、現在時刻とO2の値により今回の天候を決める。
前回が晴(1か2)で現在時刻が13時より前なら、O2-1の値を今回の天候とする。
前回が晴(1か2)で現在時刻が13時以後なら、O2-3の値を今回の天候とする。
前回が晴(1か2)以外なら、O2+1の値を今回の天候とする。
上記で計算した天候を1〜6に補正し(1未満なら1、6を超えたら6)、天候を決める。
1か2なら晴、3〜5は雪、6は吹雪とする。
E)J列からO列の31〜44行目は次の内容で、雷雨の発生場所を決める(EXCEL関数)。
用途は、リニーの雷雨の発生場所を決める為のもの。
・L31とN31以外は定数で手動作成。
・L31は乱数を参照(1〜36)。
・N31はL31を検索キーとしてN列を検索し、該当するK列の内容を設定。
F)J列からP列の48〜56行目は次の内容で、泥濘による移動力の低下を決める(EXCEL関数)。
用途は、ヴォーシャンの9:00から11:00までの状態を決める為のもの。天候の数値を参照して
(可変7なら7、可変8なら8)、このデータを使うかG)のデータを使うか決める。
・K48、N48、O48、P48以外は定数で手動作成。
・K48は乱数を参照(1〜36)。
・N48はK48を検索キーとしてM列を検索し、該当するN列の内容を設定。O48、P48も同様。
G)J列からP列の59〜67行目は上記F)と同様に作る。
3)作成したツール
マクロ付のファイル(Weather3.Xlsm)はWord Pressに登録できないので、バタイユゲーム
情報班のダウンロードページに登録予定。
<個人的感想>
今回は乱数を使って色々と検索したが、これはEXCELを使うメリットである。また、雪の判定の
ように前回値を記憶する場合にはVBAによるプログラムが必要になる。EXCEL、マクロ、VBAを
使うと色々な事ができるので便利である。
<リンク>