夏休みに同僚や気の合う友人とグループ旅行に行ったという方も多いのではないでしょうか。楽しい一時を過ごせたのではと思います。しかし、グループ旅行に行って大変なのは旅行後の細かな費用計算です。高速道路の代金や駐車場や宿の費用など、細かな費用までしっかり計算するのは大変です。そこで、今回は、なでしこで費用精算に役立つプログラムを作ってみましょう。
費用をメモっておこう
さて、今回作るプログラムの大前提として、必要になった費用を携帯電話のメモ機能に細かく入力したことにします。
例えば、高速道路の代金などは、現地までに料金所を数カ所通ることも珍しくありません。ETCを通過するたびに表示される料金や、駐車場代が判明した時点で、携帯電話のメモ機能に以下のように入力しておきます。
2400=高速道路A区間
350=高速道路B区間
680=高速道路C区間
1300=駐車場代
上記のように、一行に一項目を「値段=事柄」のように記入しておくと間違いがないので、この形式で費用をこまめに入力したものとします。
メモを自動で計算しよう
さて、ここからがプログラムです。まずは、WEBブラウザで「なでしこの簡易エディタ」を開きましょう。そして、以下のプログラムをコピー&ペーストして実行してみましょう。
# --- 画面の作成 --- (*1)
情報ラベル=「***」のラベル作成。
改行作成。
入力エリア=「」のテキストエリア作成。
# --- イベントの設定 --- (*2)
入力エリアをキータイピング時には
入力エリアのテキスト取得して、合計計算処理。
ここまで。
# --- データの合計処理 --- (*3)
●(Sの)合計計算処理とは
Sを英数記号半角変換してSに代入。
F合計=0
Sを改行で区切って反復
対象の「=」まで切り取ってトリムしてS2に代入。
もし、S2=空ならば、続ける。
F合計=F合計+INT(S2)
ここまで
情報ラベルに「合計:{F合計}円」をテキスト設定。
ここまで。
# --- デザイン(スタイル)の指定 --- (*4)
入力エリアに{
"幅": "400px", "高さ": "250px"
}をDOMスタイル一括設定。
情報ラベルに{
"背景色": "#0000FF", "色": "#FFFFFF",
"文字サイズ": "32px", "余白":"8px"
}をDOMスタイル一括設定。
プログラムを実行すると、以下のような画面が表示されます。
そして、表示されたテキストエリアに、メモしておいたテキスト全部を貼り付けて[ENTER]キーを押します(※実行ボタンではなく)。すると以下のように、費用の合計が上部に表示されます。
簡単にプログラムを確認してみましょう。プログラムの(*1)の部分では、ラベルやテキストエリアと行った画面に配置する部品を作成します。そして、(*2)の部分ではテキストエリアで何かキーを入力した時に、計算処理を行うようにイベントを設定します。
そして、(*3)の部分では実際にテキストエリアに入力されたテキストを一行ずつ合計する処理を記述しています。最後の(*4)の部分はテキストエリアの大きさなど、画面のデザインを指定しています。
一人あたりの値段も表示しよう
続けて、費用の合計が出たら、あとは、この費用をメンバーの人数で割るだけです。ここまでのプログラムでは、費用を合計するだけなので、一人あたりの人数も表示できるように改良してみましょう。
プログラムの18行目に人数で合計値を割る以下の処理を入れましょう。
# 18行目を以下のように書き換え
参加人数=5
F一人あたり=CEIL(F合計÷参加人数)
情報ラベルに「{F合計}÷{参加人数}={F一人あたり}円」をテキスト設定。
すると、以下のように一人あたりの金額を表示するようになります。
まとめ
以上、今回は携帯電話のメモ機能などに記録したメモを自動で計算するプログラムを作ってみました。30行未満の簡単なプログラムですが、メモさえしっかりとってあれば、手軽に旅行の費用精算ができます。もちろん、携帯電話を見ながら改めて表計算ソフトに数値を入力し直す手間も省けます。
ちなみに、筆者も今年は友人たちと高原のホテルに行って楽しんで来ました。それで実際に今回のプログラムを使って費用精算をしました。せっかくの楽しい旅行です。自作のプログラムを使って、事後精算の手間を最小限にするなら、グループ旅行をいっそう楽しいものにできるでしょう。
自由型プログラマー。くじらはんどにて、プログラミングの楽しさを伝える活動をしている。代表作に、日本語プログラミング言語「なでしこ」 、テキスト音楽「サクラ」など。2001年オンラインソフト大賞入賞、2004年度未踏ユース スーパークリエータ認定、2010年 OSS貢献者章受賞。技術書も多く執筆している。