中級者向け実践:一般企業でのGASファイル操作による年末調整準備の源泉徴収票自動生成(中規模企業向け)

中級者向け実践:一般企業でのGASファイル操作による年末調整準備の源泉徴収票自動生成(中規模企業向け)

年末調整の準備、特に源泉徴収票の作成は、多くの企業にとって時間と労力がかかる作業です。Google Apps Script(GAS)を使用することで、このプロセスを大幅に自動化し、効率化することができます。この記事では、中規模企業(11〜100人規模)を対象に、GASを用いた源泉徴収票自動生成の具体的な方法を、中級者向けに解説します。

GASを用いた源泉徴収票自動生成の概要

源泉徴収票の自動生成には、主に以下のステップが含まれます。

  • 従業員データの収集:スプレッドシートや人事システムから従業員情報を収集します。
  • 給与データの収集:給与計算システムから給与、控除、社会保険料などのデータを収集します。
  • 源泉徴収額の計算:収集したデータに基づいて、源泉徴収額を計算します。
  • 源泉徴収票の作成:計算結果を基に、源泉徴収票のPDFファイルを生成します。
  • PDFファイルの保存:生成されたPDFファイルをGoogle Driveなどのストレージに保存します。

必要な準備

GASで源泉徴収票を自動生成するためには、以下の準備が必要です。

  • Google Workspace(旧G Suite)環境:GASはGoogle Workspace上で動作します。
  • 従業員データと給与データ:スプレッドシートやデータベースに整理された従業員データと給与データが必要です。
  • 源泉徴収票のテンプレート:PDF生成に使用する源泉徴収票のテンプレート(Googleドキュメント)を用意します。

GASコード例:源泉徴収票の自動生成

以下は、GASで源泉徴収票を自動生成するコード例です。この例では、スプレッドシートから従業員データと給与データを取得し、Googleドキュメントのテンプレートを使用して源泉徴収票を生成します。

// スプレッドシートからデータを取得する関数
function generateWithholdingSlips() {
// スプレッドシートのIDとシート名
const spreadsheetId = "YOUR_SPREADSHEET_ID";
const employeeSheetName = "EmployeeData";
const salarySheetName = "SalaryData";
// 源泉徴収票テンプレートのID
const templateId = "YOUR_TEMPLATE_ID";

// スプレッドシートを開く
const ss = SpreadsheetApp.openById(spreadsheetId);
const employeeSheet = ss.getSheetByName(employeeSheetName);
const salarySheet = ss.getSheetByName(salarySheetName);

// 従業員データと給与データを取得
const employeeData = employeeSheet.getDataRange().getValues();
const salaryData = salarySheet.getDataRange().getValues();

// データ処理(ヘッダー行をスキップ)
for (let i = 1; i < employeeData.length; i++) {
const employee = employeeData[i];
const employeeId = employee[0]; // 従業員IDを仮定

// 給与データを検索
const salary = salaryData.find(row => row[0] === employeeId); // 従業員IDで検索

if (salary) {
// 源泉徴収票を生成
generateWithholdingSlip(templateId, employee, salary);
}
}
}

// 源泉徴収票を生成する関数
function generateWithholdingSlip(templateId, employee, salary) {
// テンプレートドキュメントを開く
const templateDoc = DocumentApp.openById(templateId);
// テンプレートのコピーを作成
const newDoc = templateDoc.makeCopy(`${employee[1]}_源泉徴収票`); // employee[1]を氏名と仮定
const newDocId = newDoc.getId();
const newDocFile = DriveApp.getFileById(newDocId);

// ドキュメント本文を取得
const body = newDoc.getBody();

// 従業員データと給与データに基づいてプレースホルダーを置換
body.replaceText("{{氏名}}", employee[1]); // 氏名
body.replaceText("{{住所}}", employee[2]); // 住所
body.replaceText("{{年収}}", salary[1].toString()); // 年収
body.replaceText("{{源泉徴収額}}", salary[2].toString()); // 源泉徴収額

// PDFとして保存
newDocFile.convertTo(MimeType.PDF);

// 一時ファイルを削除(必要に応じて)
// DriveApp.getFileById(newDocId).setTrashed(true);
}

解説:

  • YOUR_SPREADSHEET_IDYOUR_TEMPLATE_ID は、実際のスプレッドシートIDとテンプレートドキュメントIDに置き換えてください。
  • employeeDatasalaryData のインデックス(例:employee[1])は、スプレッドシートの列構成に合わせて調整してください。
  • テンプレートドキュメントには、{{氏名}}{{住所}}{{年収}}{{源泉徴収額}} のようにプレースホルダーを配置してください。

応用例と活用シーン

  • 従業員への自動配布: 生成された源泉徴収票のPDFファイルを、従業員に自動的にメールで送信することができます。
  • 人事システムとの連携: 人事システムから直接データを取得し、より高度な自動化を実現できます。
  • 電子署名の導入: 生成された源泉徴収票に電子署名を追加することで、法的要件を満たすことができます。

まとめ

GASを使用することで、年末調整の源泉徴収票作成を大幅に効率化できます。この記事で紹介したコード例を参考に、自社のニーズに合わせた自動化システムを構築してみてください。年末調整の準備期間を有効に活用し、より戦略的な業務に集中できるようになるでしょう。