こんにちは。ITライターのもり(@moripro3)です!GoogleAppsScriptの記事をお届けしています!
バックオフィス業務では、取引先に書類を送付する際に「送付状」を作成することがありますね。
「XXの書類をお送りします、よろしくお願いします」といった内容を添えるための書類で、送付先ごとに情報を入力して作ります。このようなイメージです。
Excelなどで作成すると、送付状を作成するたび、相手方の住所・会社名・役職・氏名などを入力する手間が発生します。
そこで、「めんどうな送付状作成をGASで自動化しよう!」が、このシリーズのテーマです。
Googleサービスのひとつである「Google連絡先」の登録データを送付状の宛先に使用することで、送付状が簡単に作れます。
このシリーズでは「送付状作成ツール」を題材として、「Google連絡先の登録データをスプレッドシートに取得する方法」を紹介していきます。
送付状作成ツールの全体像
「自動化でバックオフィス革命」がモットーのオートメーションラボ株式会社では、このような流れで「送付状作成」を行っています。
- 名刺管理アプリで撮影した取引先のデータを「Google連絡先」に自動登録
- 「Google連絡先」のデータを「Googleスプレッドシート」に取得(GAS)
- 「Googleスプレッドシート」から「送付状」にデータ転記(GAS)
スマホアプリで取引先の方の名刺を撮影すれば、あとはGASの力で、ほぼ自動で送付状が作れてしまうんですね。
※この連載シリーズは、GASの処理である赤枠部の範囲を紹介します。シリーズの最後で実物のツール(スプレッドシート)を公開しますので、ぜひご活用ください。
Google連絡先の登録データをスプレッドシートに取得する
当シリーズのメインテーマは「Google連絡先の登録データをスプレッドシートに取得する処理」です。
スクリプトを実行するたびに、新規の登録データ(※)を差分追加します。※スクリプト前回実行時から今回実行までの間に新規登録した連絡先
スプレッドシートへの書き出しイメージは下記のとおりです。Google連絡先のエクスポート機能で出力したCSVよりも、はるかに見やすく管理できます!
Google連絡先から氏名を取得する
この記事では「Google連絡先」からデータを取得する最初の一歩として、「氏名」データを取得する方法を紹介します。
サンプルデータとして登録している4件の「氏名」を取得してみます。
それではGASでコードを書いていきましょう!
GASでGoogle連絡先にアクセスするContactAppクラス
G Suite Servicesでは、「Google連絡先」を操作するための「Contactsサービス」が提供されています。
ContactAppクラスとはContactsサービスの最上位のオブジェクトです。自分の「Google連絡先」にアクセスして、新規連絡先の「作成」や、既存連絡先の「取得・削除・更新」ができます。(公式ドキュメントはこちら)
Google連絡先の連絡先一覧を取得する
ContactAppクラスのgetContactsメソッドで「Google連絡先」の連絡先一覧を取得します。
- ContactAppクラス.getContacts()
自分のGoogle連絡先に登録されているすべての連絡先を取得します。
※戻り値はContactクラスの配列です
連絡先一覧を取得するコードがこちらです。
//Google連絡先から連絡先一覧を取得 var contacts = ContactsApp.getContacts(); Logger.log(contacts); //[Contact, Contact, Contact, Contact]
戻り値が配列になっていることが確認できます。4件の連絡先が登録されているので、4件のContactオブジェクトが配列に格納されています。
この配列(連絡先一覧)に格納されているのは、「Contactオブジェクト」です。Contactオブジェクトには、氏名・会社情報など、ひとり分の全データが含まれています。
※getContactsメソッドは、Google連絡先の「連絡先」「その他の連絡先」のすべてを取得します。
- その他の連絡先 … Google サービスでやり取りしたことのあるユーザーは自動的に [その他の連絡先] に保存されます
Contactオブジェクトから氏名を取得する
ここからはContactオブジェクトを操作します。ContactクラスのgetFullNameメソッドで「氏名」を取得できます。
※Google連絡先には「氏名」の項目はないので、「姓」「名」を結合した文字列が返ります。
- Contactオブジェクト.getFullName()
連絡先の「氏名」を取得します(姓と名を結合した文字列)
コードがこちらです。「連絡先一覧の配列」(変数contacts)をループして、Contactオブジェクトから「氏名」を一つずつ取り出します。
function Sample1() { //Google連絡先から連絡先一覧を取得 var contacts = ContactsApp.getContacts(); for (var i = 0; i < contacts.length; i++) { var fullName = contacts[i].getFullName(); Logger.log(fullName); } }
スクリプト実行ログです。Google連絡先に登録されている全4件の氏名データが取得できました。
[yy-mm-dd hh:mm:ss:xxx JST] 佐藤太郎 [yy-mm-dd hh:mm:ss:xxx JST] 田中次郎 [yy-mm-dd hh:mm:ss:xxx JST] 鈴木花子 [yy-mm-dd hh:mm:ss:xxx JST] 高橋和子
他の項目も同じ要領で取得できます。「会社情報を取得するメソッド」「住所情報を取得するメソッド」など、Contactクラスには様々なメソッドが用意されています(公式ドキュメントはこちら)
主に、4種類のメソッドが存在します。
- ①add ~ 「作成」
- ②delete ~, remove ~ 「削除」
- ③get ~ 「取得」
- ④set ~ 「更新」
(参考)Contactオブジェクトから姓・名を個別に取得する
Google連絡先の「姓」「名」を個別に取得するメソッドも存在します。
- Contactオブジェクト.getFamilyName()
連絡先の「姓」を取得します。
- Contactオブジェクト.getGivenName()
連絡先の「名」を取得します。
コードがこちらです。
function Sample2() { //Google連絡先から連絡先一覧を取得 var contacts = ContactsApp.getContacts(); for (var i = 0; i < contacts.length; i++) { var familyName = contacts[i].getFamilyName(); //姓 var givenName = contacts[i].getGivenName(); //名 Logger.log('姓 => %s', familyName); Logger.log('名 => %s', givenName); } }
スクリプト実行ログです。「姓」「名」を個別に取得できました。
[yy-mm-dd hh:mm:ss:xxx JST] 姓 => 佐藤 [yy-mm-dd hh:mm:ss:xxx JST] 名 => 太郎 [yy-mm-dd hh:mm:ss:xxx JST] 姓 => 田中 [yy-mm-dd hh:mm:ss:xxx JST] 名 => 次郎 [yy-mm-dd hh:mm:ss:xxx JST] 姓 => 鈴木 [yy-mm-dd hh:mm:ss:xxx JST] 名 => 花子 [yy-mm-dd hh:mm:ss:xxx JST] 姓 => 高橋 [yy-mm-dd hh:mm:ss:xxx JST] 名 => 和子
【まとめ】Google連絡先から氏名を取得する
「送付状作成ツールの全体像」と「Google連絡先から氏名を取得する方法」を紹介しました。
- GASで「Google連絡先」にアクセスするContactAppクラス
- ContactAppクラスのgetContactsメソッドで「Google連絡先」の連絡先一覧を取得できる(返り値はContactクラスの配列)
- ContactクラスのgetFullNameメソッドで氏名データを取得する
次回は、Google連絡先から「会社名」と「役職」を取得する方法を紹介します。「フィールド」という考え方がポイントになってきますよ。
こんにちは。ITライターのもり(@moripro3)です!GoogleAppsScriptの記事をお届けしています! 「送付状作成ツール」を題材として、GASの自動化事例をシリーズでお届けしています。 Googleサービスのひと[…]
【連載目次:GASで作る送付状作成ツール】
- GASでGoogle連絡先の「氏名」を取得する【送付状作成ツール①】
- GASでGoogle連絡先の「会社名」と「役職」を取得する【送付状作成ツール②】
- GASでGoogle連絡先から取得したデータをスプレッドシートに書き込む【送付状作成ツール③】
- GASでGoogle連絡先から「住所」を取得する【送付状作成ツール④】
- GASでGoogle連絡先から「メールアドレス」と「電話番号」を取得する【送付状作成ツール⑤】
- GASでGoogle連絡先に新規登録された連絡先のみを取得する【送付状作成ツール⑥】
- GASでGoogle連絡先から取得したデータを使用して送付状を作る【送付状作成ツール⑦】<※ツール公開あり>