中級者向け実践:一般企業での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_ID
、YOUR_TEMPLATE_ID
は、実際のスプレッドシートIDとテンプレートドキュメントIDに置き換えてください。employeeData
、salaryData
のインデックス(例:employee[1]
)は、スプレッドシートの列構成に合わせて調整してください。- テンプレートドキュメントには、
{{氏名}}
、{{住所}}
、{{年収}}
、{{源泉徴収額}}
のようにプレースホルダーを配置してください。
応用例と活用シーン
- 従業員への自動配布: 生成された源泉徴収票のPDFファイルを、従業員に自動的にメールで送信することができます。
- 人事システムとの連携: 人事システムから直接データを取得し、より高度な自動化を実現できます。
- 電子署名の導入: 生成された源泉徴収票に電子署名を追加することで、法的要件を満たすことができます。
まとめ
GASを使用することで、年末調整の源泉徴収票作成を大幅に効率化できます。この記事で紹介したコード例を参考に、自社のニーズに合わせた自動化システムを構築してみてください。年末調整の準備期間を有効に活用し、より戦略的な業務に集中できるようになるでしょう。