- 東京理科大学鳥人間サークル鳥科で使用する,経費精算申請フォームの生成ライブラリです.
- Googleスプレッドシートと直接接続し,フォームから送信されたデータを安全に記録します.
- 複数項目の送信,税率計算,申請先や購入場所の個別設定などに対応しています.
- 何かあれば制作者にXのDMやメール([email protected])などで連絡してください.
Note
このリポジトリ内のdocsはGitHub Pagesで公開されており,フォームのファビコンはここから取得しています.
- 画面下部のこのボタンを押すと,新しいアイテムが追加され,複数の商品に関する内容を同時に送信することができます.
- 「一括」:すべてのアイテムに一括で内容を適用します.
- 「個別」:それぞれのアイテムに別々の内容を適用します.
- 「税込」:税率計算機能は無効です.
- 「税抜」:税率計算機能が有効です.「税率」に従って自動的に計算されます.
- 販売店によっては,商品の合計金額に対して税率をかける場合があります.その場合,このフォーム上での税率計算後の金額と異なってしまうことがあります.
- フォーム上の合計金額と実際の合計金額の差を補正する際は,「補正」を「あり」に切り替えて税額を補正してください.
- データ送信先のGoogleスプレッドシートを新しいタブ(またはウィンドウ)で開きます.
- このGitHubリポジトリを新しいタブ(またはウィンドウ)で開きます.
更新履歴を開く
2025-11-02:
- 「申請者」と「購入場所」,「購入目的」のデフォルトを設定する関数を追加.
- バインド(紐づけ)されたスプレッドシートと直接リンクする形式に変更.
- 「申請先」と一致する名前のスプレッドシートのシートが存在しない場合,自動的に追加される機能を実装.
- タイトル上部の画像及びファビコンを変更する関数を実装.
- 「割引額」入力欄の未入力チェックを無効化.
- ライブラリのデプロイを利用する形式に変更.
- 項目(Category)選択機能を実装.
- アイテムが常に1つ以上存在するように修正.
- 未入力欄の赤枠表示の問題を修正.
- 警告メッセージの色を修正.
- ファイルをアップロード.
Chromeブラウザの場合(ここをクリック)
使用するアカウントのプロファイルを作成し,ログインしてください.既にログインしている場合,操作は必要ありません.
その後,
Googleドライブにアクセスします.【Google Chrome】プロファイルの追加設定と切り替え方法 | eguweb(エグウェブ)
その他のブラウザの場合(ここをクリック)
ログイン情報が複数あると,Google Apps Scriptが正しく動作しない可能性があります.
Googleドライブにアクセスし,「全てのアカウントからログアウト」してから,使用するアカウントでログインし直してください.

まだスプレッドシートを作成していない場合(ここをクリック)
画面左上の「新規」から,「Googleスプレッドシート」をクリックすると,新しくスプレッドシートが作成されます.

「無題のスプレッドシート」をクリックすると,名前を変更することができます.
「〇〇代経費申請」など適当な名前を入力します(画像では「test」にしています).
少し待って,名前の右側に「ドライブに保存しました」という表示が出れば完了です.

「拡張機能」から「Apps Script」をクリックします.
「無題のプロジェクト」をクリックしてください.

プロジェクト名を変更し,「名前を変更」をクリックしてください.

「ライブラリ」の右にある「+」をクリックしてください.

スクリプトIDを入力し,「検索」をクリックしてください.(スクリプトIDは以下でコピーできます.)
スクリプトID:1lqOvEXcBEAAfzkD4aZGJjShQuhE7bcA3JlCZrCoaVzm-0qRNzXQG-14h

最新の「バージョン」(一番大きな数字)を選択し,「追加」をクリックしてください.(IDは変更しないでください.)

ライブラリが追加されます.

以下のコードスニペットから「コード.gs」の例をコピーしてください.
コード.gs
function initializeData () {
//会計担当者へ/////////////////////////////
// #1 適当なタイトルを設定してください.
ExpenseReportForm.setTitle("経費精算申請フォーム");
// #1.5 タイトル上の画像とファビコン,回答のデフォルトが設定可能です.
// ※デフォルトで鳥科仕様になっているため,鳥科で利用する場合には設定不要です.
// ExpenseReportForm.setTitleLogoUrl(); // タイトル上に表示される画像を設定できます.引数なしで実行すると,鳥科のロゴが表示されなくなります.設定例 : "https://lh3.googleusercontent.com/d/{画像のファイルID}"
// ExpenseReportForm.setFabiconUrl(); // ファビコンを設定できます.引数なしで実行すると,GASのファビコンが適用されます.設定例 : "https://drive.google.com/uc?id={画像のファイルID}&.png"(こちら は拡張子必須です)
// ExpenseReportForm.setDefaultName("-"); // 申請者の名前のデフォルトを設定できます.
// ExpenseReportForm.setDefaultRetailer("-"); // 購入場所のデフォルトを設定できます.
// ExpenseReportForm.setDefaultPurpose("-"); // 購入目的のデフォルトを設定できます.
// #2 申請先のスプシの「シート名(ApplyTo)」と「項目(Category)」を追加してください.
// スプシにない「シート名」は自動的にその名前で作成されます.
ExpenseReportForm.addApplyTo("運営");
ExpenseReportForm.addCategory("運営", "理大祭");
ExpenseReportForm.addCategory("運営", "鳥コン");
ExpenseReportForm.addCategory("運営", "新歓");
ExpenseReportForm.addCategory("運営", "TF");
ExpenseReportForm.addCategory("運営", "外部イベント");
ExpenseReportForm.addCategory("運営", "ラジコン");
ExpenseReportForm.addCategory("運営", "その他");
ExpenseReportForm.addApplyTo("設計");
ExpenseReportForm.addCategory("設計", "桁");
ExpenseReportForm.addCategory("設計", "その他");
ExpenseReportForm.addApplyTo("フラチ");
ExpenseReportForm.addCategory("フラチ", "ハング");
ExpenseReportForm.addCategory("フラチ", "レンタカー");
ExpenseReportForm.addApplyTo("翼班");
ExpenseReportForm.addCategory("翼班", "木材");
ExpenseReportForm.addCategory("翼班", "スタイロ");
ExpenseReportForm.addCategory("翼班", "プランク");
ExpenseReportForm.addCategory("翼班", "フィルム");
ExpenseReportForm.addCategory("翼班", "消耗品");
ExpenseReportForm.addCategory("翼班", "レーザーカット");
ExpenseReportForm.addCategory("翼班", "その他");
ExpenseReportForm.addApplyTo("接合班");
ExpenseReportForm.addCategory("接合班", "かんざし");
ExpenseReportForm.addCategory("接合班", "積層");
ExpenseReportForm.addCategory("接合班", "治具");
ExpenseReportForm.addCategory("接合班", "木フラ");
ExpenseReportForm.addCategory("接合班", "工具・ボルトなど");
ExpenseReportForm.addCategory("接合班", "尾翼");
ExpenseReportForm.addCategory("接合班", "ウィングレット");
ExpenseReportForm.addCategory("接合班", "消耗品");
ExpenseReportForm.addCategory("接合班", "その他");
ExpenseReportForm.addApplyTo("コクピ班");
ExpenseReportForm.addCategory("コクピ班", "キャノピー");
ExpenseReportForm.addCategory("コクピ班", "御神体");
ExpenseReportForm.addCategory("コクピ班", "カウル");
ExpenseReportForm.addCategory("コクピ班", "フレーム");
ExpenseReportForm.addCategory("コクピ班", "ハッチ");
ExpenseReportForm.addCategory("コクピ班", "消耗品");
ExpenseReportForm.addCategory("コクピ班", "その他");
ExpenseReportForm.addApplyTo("電装班");
ExpenseReportForm.addCategory("電装班", "基板");
ExpenseReportForm.addCategory("電装班", "マイコン・IC・メモリなど");
ExpenseReportForm.addCategory("電装班", "センサーなど");
ExpenseReportForm.addCategory("電装班", "モーター・スピーカーなど");
ExpenseReportForm.addCategory("電装班", "ケーブル・コネクタなど");
ExpenseReportForm.addCategory("電装班", "LED・ディスプレイなど");
ExpenseReportForm.addCategory("電装班", "抵抗・コンデンサーなど");
ExpenseReportForm.addCategory("電装班", "電源・バッテリーなど");
ExpenseReportForm.addCategory("電装班", "筐体・構造材料など");
ExpenseReportForm.addCategory("電装班", "消耗品・固定具など");
ExpenseReportForm.addCategory("電装班", "3Dプリンタ用品など");
ExpenseReportForm.addCategory("電装班", "その他");
ExpenseReportForm.addCategory("電装班", "シミュレーター");
/////////////////////////////////////////
return ExpenseReportForm.syncData();
}
function submit (records) {
initializeData();
return ExpenseReportForm.addData(records);
}
function doGet () {
initializeData();
return ExpenseReportForm.execute();
}
「コード.gs」の内容を全て消去してください.
先程コピーした内容を貼り付けてください.
以下のような関数を用いて,フォームをカスタマイズできます.
- ExpenseReportForm.setTitle()
- タイトルを設定します.
- ExpenseReportForm.addApplyTo()
- 申請先(班)を追加します.
- ExpenseReportForm.addCategory()
- 項目を追加します.
以下は,鳥科では使用しません
- ExpenseReportForm.setTitleLogoUrl()
- タイトル上に表示されるロゴを設定できます.
- 無引数(カッコ内空欄)で呼び出すと,ロゴは非表示になります.
- 設定例 :
ExpenseReportForm.setTitleLogoUrl(https://lh3.googleusercontent.com/d/{画像のファイルID});
- ExpenseReportForm.setFabiconUrl()
- ブラウザなどで表示されるファビコン(タイトルの戦闘に表示される小さなロゴ)を設定できます.
- 無引数(カッコ内空欄)で呼び出すと,ファビコンはGoogle Apps Scriptのデフォルトになります.
- 設定例 :
ExpenseReportForm.setFabiconUrl(https://drive.google.com/uc?id={画像のファイルID}&.png);(こちらは拡張子必須です)
- ExpenseReportForm.setDefaultName();
- 申請者の名前のデフォルトを設定できます.
- ExpenseReportForm.setDefaultRetailer();
- 購入場所のデフォルトを設定できます.
- ExpenseReportForm.setDefaultPurpose();
- 購入目的のデフォルトを設定できます.
「Ctrl+S」もしくはフロッピーディスクのボタンをクリックしてください.

「新しいデプロイ」をクリックしてください.

「種類の選択」の右側にある歯車マークをクリックし,「ウェブアプリ」をクリックしてください.

「新しい説明文」を設定してください.

「アクセスできるユーザー」を「全員」に変更し,「デプロイ」をクリックしてください.

「アクセスを承認」をクリックしてください.

会計用アカウントを選択してください.

「Google hasn’t verified this app」と表示される画面で,左下の「Advanced」をクリックしてください.
開いたメニューにある「Go to(設定したプロジェクト名)」(画像では「Go to マイフォーム」 )をクリックしてください.

「Allow」をクリックし,Googleアカウントへのアクセスを承認してください.

デプロイが更新されます.「ウェブアプリ」のURLからフォームにアクセスできます.「完了」を押すと閉じることができます.

フォームへアクセスするURLは「デプロイを管理」からも取得できます.

「ウェブアプリ」のURLからフォームにアクセスできます.

申請先(班)や項目を追加した場合に,その変更を適用する際はデプロイを更新する必要があります.
以下の手順で,同じURLを使い続けつつ,変更を加えることができます.
「デプロイを管理」を開いた後,ペンのマークの「編集」をクリックします.

バージョンを「新バージョン」に,説明も違うものに変更し,「デプロイ」をクリックします.

デプロイが更新されます.「ウェブアプリ」のURLは同じですが,内容は変更されているはずです.





