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と書かれている部分をすべて消します。
次に上記のコードをすべて選択して貼り付けます。
保存を押し、実行を押します。
以下、赤印で囲んだところを選択
実行ログに実行完了と表示されたら、スプレッドシートを見て下さい。
シートが出来ています。
この記事が気に入ったらサポートをしてみませんか?