【GAS】Google Apps Script 活用事例 差し込み文書の作成をもっと簡単に
今まで一番読まれているnote記事なんですが、スクリプトが結構長いし、マクロを初めて使ってみようという人には、ちょっとハードルが高いかなと思うようになりました。
そこで今回は、趣旨を変えてライブラリを使用して、差込文書作成をもっと簡単に実現しよう!!というお話です。
ライブラリを使ってみよう
スクリプトID
18rg2maFYXNmPmB2R-8s3UuFG850j5OLw4WBvcOrghzRMlfVbQWDgOVvZ
コードを実行する前の準備
スプレッドシートの値を差し込む場所をドキュメント内に指定する
keys:['id', 'name', 'address'],
必ずkeysの中身とGoogle Documentのプレイスホルダーの文言が一致するようにしてください。
また、headerNamesはGoogle Spreadsheetの見出し行の項目名を配列に入れてください。表の中から差込に必要な列を取捨選択するために指定します。
headerNames:['ID', '氏名', '住所'],
シートの値
シートについては、上記のように見出し行を1行目に設定してください。
また、セルの結合がある場合は、誤作動の原因になるため原則避けてください。
プレイスホルダーの置換後
このような感じでプレイスホルダーが置換されます。請求書、送付状などなど色んな用途で使えるかと思います。
ちなみに個人情報はダミー作成サイトのお世話になりました。
ログの出力結果
作成されたファイル名
コードサンプル・実装例
function myFunction() {
const month = new Date().getMonth() + 1;
console.log(`処理対象: ${month}月`);
const info = {
sheetUrl: 'https://docs.google.com/spreadsheets/d/***********', //スプレッドシートのURL
fileName: `{id}_{name}_${month}月分_給与明細`, //複製後のファイル名
keys: ['id', 'name', 'address'], //見出し行の項目名と一致するように id => 'ID'
headerNames: ['ID', '氏名', '住所'],
templateFileUrl: 'https://docs.google.com/document/d/************', //Google Documentsで作成した原本のURL
folderUrl: 'https://drive.google.com/drive/folders/**********' //複製したファイルの保存先のURL
}
nepia_infinity.duplicateReplacedTemplate(info);
}
onOpenと一緒に使うと便利
function onOpen() {
SpreadsheetApp.getUi()
.createMenu('追加メニュー')
.addItem('差込文書の作成', 'myFunction')
.addItem('サブメニュー', 'myFunction2')
.addToUi();
}
自身で書いたスクリプトをUI操作だけで行えるため便利です。
ライブラリの詳細
ゼロから書くよりはだいぶ短くなったかな…..と思います。
GASの場合は、Pythonなどと異なり実務で使い倒せるライブラリが少ないのと、あったとしても開発が止まっていることがしばしば….。
そういうわけで自分自身でライブラリを作ってしまいました。
採用事務や労務などの実務経験を元に便利な処理などを追加しています。
8月18日現在で、約70くらいの処理を用意しています。盛りだくさんです。
今後も必要に応じて追加していくので、こんなのが欲しいというリクエストがあれば、X(Twitter)などで絡んでください!!