パソコン用ヘッダー画像
Googleサービス PR

小学生でもスプレッドシートアプリ~タブレットお小遣い管理術~

モバイル版アプリでGASを実行させる方法とは?
記事内に商品プロモーションを含む場合があります

先日、小学生の息子が「どうしても欲しいものがあるから、お手伝いするからお小遣いをちょうだい!」とお願いしてきました。

目標に向かって頑張る姿は応援したい…でも、ただお金を与えるだけではもったいない。そこで思いついたのが、GASとスプレッドシートを使ったお小遣い帳簿づくり。

これなら、お金の管理を学ぶだけでなく、プログラミングの基礎にも触れられる!この記事では、そんな我が家のお小遣い帳簿活用術をご紹介

  • 子どもがITスキルを学ぶ第一歩
  • 親もプログラミングスキル習得
  • GASをモバイル版アプリでも実行

お小遣い帳で身につく!お金の管理能力

お小遣い帳簿をつけることは、単なる記録ではありません。計画性や目標達成能力、そしてお金に対する責任感を育む、貴重な学びの場となります。

小学生のうちからお金の管理を習慣化することで、将来の金銭感覚や経済観念の土台を築くことができます。

計画的な消費で、欲しいものをゲット!

何にいくら使ったのかを記録することで、無駄遣いを減らし、本当に欲しいもののためにお金を貯める習慣が身につきます。

目標達成シートと組み合わせれば、モチベーションもアップ!息子も、欲しいゲームソフトのために、毎日コツコツお小遣いを貯めています。

お金の価値を理解し、感謝の気持ちを育む

お金を稼ぐことの大変さ、そして使うことの責任を学ぶことで、お金に対する感謝の気持ちが芽生えます。

将来、自立した大人になるための第一歩です。息子も、お手伝いをして初めてお金の価値を実感したようです。

GAS×スプレッドシートで、簡単&楽しく記録!

お小遣い帳をタブレットで管理することによりITスキルを身につける

GASとスプレッドシートを使えば、手書きよりもずっと簡単にお小遣い帳簿が作れます。

自動計算やグラフ表示など、便利な機能が満載!プログラミングの知識がなくても、わかりやすい解説で、親子で一緒に楽しく帳簿を作成できます。

\家族で使えるPixel Tablet/

【即日レビュー】家族みんなで使える Pixel Tablet 2023年6月20日。Pixel Tabletの発売日です。事前予約してたピクセルタブレットですが、当日に到着しました。わが家にとって...

GASで自動化!入力の手間を大幅削減

GASを使えば、日付や計算を自動で入力できます。手入力の手間が省けるだけでなく、計算ミスを防ぐこともできます。

HTML (index.html) と GAS (Code.gs) のコード、および設定方法についてまとめました。

作成したコードはこちら

function recordAllowance(date, task, amount) {
  const ss = SpreadsheetApp.getActiveSpreadsheet();
  const sheet = ss.getSheetByName("記録シート");
  if (!sheet) {
    throw new Error("記録シートが見つかりません");
  }
  sheet.appendRow([date, task, amount]);
  return "記録しました!"; // 成功メッセージを返す
}

function showAllowanceForm() {
  const html = HtmlService.createHtmlOutputFromFile("index");
  SpreadsheetApp.getUi().showModalDialog(html, "【お金の管理を学ぶ】");
}
<!DOCTYPE html>
<html>
<head>
  <base target="_top">
  <title>お小遣い帳簿</title>
  <style>
    body {
      font-family: "Kosugi Maru", sans-serif; /* 手書き風フォント */
      background-color: #f0f8ff; /* 水色 */
      text-align: center;
    }

    h2 {
      color: #ffd700; /* 金色 */
    }

    label {
      display: block;
      margin-top: 5px;
      font-size: 16px;
    }

    input[type="date"],
    input[type="text"],
    input[type="number"] {
      width: 250px;
      padding: 5px;
      border: 2px solid #98fb98; /* 薄緑 */
      border-radius: 5px;
      font-size: 16px;
    }

    button {
      background-color: #ffd700; /* 金色 */
      color: white;
      padding: 8px 12px;
      border: none;
      border-radius: 5px;
      cursor: pointer;
      font-size: 16px;
      margin-top: 5px;
    }

    /* ルビのスタイル */
    ruby > rt {
      font-size: 10px; /* ルビの文字サイズ */
    }
  </style>
</head>
<body>
  <h2>お<ruby>小遣<rt>こづか</rt>い</ruby><ruby>帳簿<rt>ちょうぼ</rt></ruby></h2> 
  <form id="allowanceForm">
    <label for="date">お手伝いした日:</label>
    <input type="date" id="date" name="date" required><br><br>
    <label for="task">お手伝いの内容:</label>
    <input type="text" id="task" name="task" required><br><br>
    <label for="amount">金額:</label>
    <input type="number" id="amount" name="amount" required><br><br>
    <button type="button" id="recordButton">記録</button>
  </form>

  <script>
     document.getElementById("recordButton").addEventListener("click", () => {
      google.script.run
        .withSuccessHandler(google.script.host.close) // 記録後にダイアログを閉じる
        .recordAllowance(
          document.getElementById("date").value,
          document.getElementById("task").value,
          document.getElementById("amount").value
        );
    });
  </script>
</body>
</html>

スプレッドシートで、見やすく分かりやすい帳簿を作成

スプレッドシートなら、見やすい表形式で収支を管理できます。グラフ機能を使えば、視覚的にお金の動きを把握することも可能です。

下記フォームからデータを記録させると、スプレッドシートにデータが反映。息子も、グラフを見て、自分の貯金が増えていく様子を楽しんでいます。

お手伝いして、ゲットしたお小遣いデータを記録

小学生が見やすく帳簿のフォームを作成

スマホ・タブレットでGASは実行できないの?

図形に割り当てたスクリプトはスマホからは実行できない

前章でお伝えしたスクリプトは、スマホ、タブレットからは実行させることはできません

パソコンからの入力だと、小学生が毎日入力すると仮定すると少しハードな作業に。

せめて、スマホやタブレットから入力ができないと、端末管理は無意味。

モバイル版アプリでは制約あり

モバイルアプリで実行させるためには?

スマホやタブレットでスクリプトを実行させる方法はあります。モバイル版アプリでは制約がある分、別の方法を考えなければいけません。

  • メニュー機能は一部しか使えない
  • 画像に割り当てたスクリプトやトリガーは機能しない
  • 使用できるアドオンはごく一部

モバイルアプリでも実行する一例

モバイル版アプリでGASを実行させる方法として、onEdit関数があります。

onEdit関数とは、スプレッドシートが編集されたときに自動的に実行させる関数です。

作成したコードはこちら

function onEdit(e) {
  const range = e.range;
  const sheet = range.getSheet();

  // 編集されたシートが「入力シート」であり、編集されたセルが2行目以降のA列~C列の場合のみ処理を実行
  if (sheet.getName() !== "入力シート" || range.getColumn() > 3 || range.getRow() < 2) {
    return;
  }

  const values = sheet.getRange(range.getRow(), 1, 1, 3).getValues()[0];
  const [date, task, amount] = values;

  // 入力値が全て埋まっているかチェック
  if (!date || !task || !amount) {
    return;
  }

  // 記録シートに転記
  const recordSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("記録シート");
  recordSheet.appendRow([date, task, amount]);

  // 入力シートのデータをクリア
  sheet.getRange(range.getRow(), 1, 1, 3).clearContent();

  // 成功メッセージを表示(任意)
  SpreadsheetApp.getUi().alert("記録しました!");
}

  • STEP1
    シートを追加
    【入力シート】を追加
  • STEP2
    データを入力
    日付、内容、金額を入力
  • STEP3
    スクリプト実行
    シートが編集されたのをトリガーにスクリプトが実行
  • STEP4
    データ反映
    記録シートに入力したデータが反映
  • STEP5
    データクリア
    データ反映後、入力シートは空欄になる

継続は力なり!楽しく記録を続ける工夫

毎日コツコツと記録を続けることが大切です。習慣化することで、自然とお金の管理ができるようになります。

息子も、今では自分から進んでお小遣い帳簿をつけています。親子で一緒にプログラミングを学ぶ絶好の機会です。

簡単なコードから始められるので、初心者でも安心!プログラミングの基本的な考え方を理解し、論理的思考力を養うことができます。


Fatal error: Uncaught JSMin_UnterminatedRegExpException: JSMin: Unterminated RegExp at byte 47225: /.source + in /home/c1448553/public_html/one-walker.net/wp-content/plugins/autoptimize/classes/external/php/jsmin.php:264 Stack trace: #0 /home/c1448553/public_html/one-walker.net/wp-content/plugins/autoptimize/classes/external/php/jsmin.php(150): JSMin->action(1) #1 /home/c1448553/public_html/one-walker.net/wp-content/plugins/autoptimize/classes/external/php/jsmin.php(84): JSMin->min() #2 /home/c1448553/public_html/one-walker.net/wp-content/plugins/autoptimize/classes/autoptimizeSpeedupper.php(38): JSMin::minify('/* PrismJS 1.29...') #3 /home/c1448553/public_html/one-walker.net/wp-includes/class-wp-hook.php(324): autoptimizeSpeedupper->js_snippetcacher('/* PrismJS 1.29...', '/home/c1448553/...') #4 /home/c1448553/public_html/one-walker.net/wp-includes/plugin.php(205): WP_Hook->apply_filters('/* PrismJS 1.29...', Array) #5 /home/c1448553/public_html/one-walker.net/wp-content/plugins/autoptimize/classes/autoptimizeScripts.ph in /home/c1448553/public_html/one-walker.net/wp-content/plugins/autoptimize/classes/external/php/jsmin.php on line 264