見出し画像

GASで月間給与算出のテンプレートをを作ってみた スマホで算出OK

テンプレートのダウンロードサイトありますが、結局登録が必要であり、中には闇バイトや個人情報漏洩に繋がる可能性もあるので、コードを自分で作った方が安全と思いました。
一度パソコン上でシートを作れば、スマホのスプレッドシートを使って時給と勤務時間入力すれば、金額は算出されます。


時給計算について

厳密にいえば本業で8時間以上勤務した後の同日の副業は時給が1.25倍になりますが、このシートではそこまで算出しません。

GASでテンプレートを作る

給料計算のテンプレートをGASで作るコードです。
1度組み込んでおくと意外と使えます。
薄い黄色の部分だけ入力すれば自動計算設定となっています。

必要事項を入れたものが下の画像です。
印刷もA4に収まります。
5社で働いている人はいないと思いますが。

実行して出来るシート
時給と勤務時間を入れたシート

GASとは

GASは簡単に言えばグーグルが提供しているプログラミング言語です。無料で利用できます。

シフト表のサンプルコード

GASをある程度知っている方…下のコードをコピペすれば完了です。
GASをあまりよく分からない方…コードの下に説明を詳しく入れています。ご参照ください。

function setupSheet() {
  const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  sheet.clear(); // シートの初期化

  // B1に当月の初日、太字
  const today = new Date();
  const firstDayOfMonth = new Date(today.getFullYear(), today.getMonth(), 1);
  sheet.getRange("B1").setValue(firstDayOfMonth).setNumberFormat("yyyy/mm").setFontWeight("bold");

  // C1に「バイト代算出」、太字
  sheet.getRange("C1").setValue("バイト代算出").setFontWeight("bold");

  // 必要なセルにラベルを入力
  sheet.getRange("E1").setValue("黄色のセルだけ入力");
  sheet.getRange("B2").setValue("企業名");
  sheet.getRange("B3").setValue("時給");
  sheet.getRange("B4").setValue("勤務時間");
  sheet.getRange("B5").setValue("計");
  sheet.getRange("B8").setValue("■勤務時間入力(例:8時間の場合は8:00)");
  sheet.getRange("A9").setValue("日付");
  sheet.getRange("B9").setValue("日付");

  // C3:G5とC10:G40の表示形式
  sheet.getRange("C3:G5").setNumberFormat("[hh]:mm");
  sheet.getRange("C10:G40").setNumberFormat("[hh]:mm");

  // 関数を動的
  sheet.getRange("A10").setFormula("=B1");
  sheet.getRange("A11:A40").setFormula("=IF(A10=\"\",\"\",IF(MONTH(A10)<>MONTH(A10+1),\"\",A10+1))");
  sheet.getRange("B10:B40").setFormula("=IF(A10=\"\",\"\",TEXT(A10,\"ddd\"))");

  sheet.getRange("C4:G4").setFormula("=IF(SUM(C10:C40)=0, \"\", SUM(C10:C40))");
  sheet.getRange("C5:G5").setFormula("=SUM(ARRAYFORMULA(IF(C10:C40 > TIME(8, 0, 0), C10:C40 - TIME(8, 0, 0), 0)))");
  sheet.getRange("C6:G6").setFormula("=(C3*(C4-C5)+C3*1.25*C5)*24");
  sheet.getRange("C9:G9").setFormula("=IF(C2=\"\", \"\", C2)");

  // 背景色
  const lightYellow = "#FFF2CC";
  const lightGray = "#D9D9D9";
  sheet.getRange("B1").setBackground(lightYellow);
  sheet.getRange("C2:G3").setBackground(lightYellow);
  sheet.getRange("C10:G40").setBackground(lightYellow);
  sheet.getRange("B2:B6").setBackground(lightGray);
  sheet.getRange("C4:G6").setBackground(lightGray);
  sheet.getRange("A9:B40").setBackground(lightGray);
  sheet.getRange("C9:G9").setBackground(lightGray);

  // A10:A40 の表示形式を「d」
  sheet.getRange("A10:A40").setNumberFormat("d");

  // 列の幅と行の高さ
  sheet.setColumnWidth(1, 50);  // A列
  sheet.setColumnWidths(2, 6, 100);  // B列~G列
  sheet.setRowHeights(1, 40, 30);  // 1行目から40行目

  // シート全体の文字サイズとテキストの表示位置
  sheet.getDataRange().setFontSize(14);
  sheet.getDataRange().setVerticalAlignment("middle");

  // C10:G40のセルサイズと中央揃え
  sheet.getRange("C10:G40").setFontSize(14).setVerticalAlignment("middle");

  // C3:G3の表示形式を「0,000円」
  sheet.getRange("C3:G3").setNumberFormat("#,##0円");

  sheet.getRange("b6").setFormula("=sum(c6:g6)");
}

GASの基本から

Dドライブにアクセスして、スプレッドシートを開きます。
拡張機能からAppScriptを選択します。

下のような画面が出てきたら、function myfunctionと書かれている部分をすべて消します。

次に上記のコードをすべて選択して貼り付けます。
保存を押し、実行を押します。

以下、赤印で囲んだところを選択

実行ログに実行完了と表示されたら、スプレッドシートを見て下さい。
シートが出来ています。


この記事が気に入ったらサポートをしてみませんか?