GASでGoogle連絡先の「氏名」を取得する【送付状作成ツール①】

こんにちは。ITライターのもり(@moripro3)です!GoogleAppsScriptの記事をお届けしています!

バックオフィス業務では、取引先に書類を送付する際に「送付状」を作成することがありますね。

「XXの書類をお送りします、よろしくお願いします」といった内容を添えるための書類で、送付先ごとに情報を入力して作ります。このようなイメージです。

送付状のイメージ

 

Excelなどで作成すると、送付状を作成するたび、相手方の住所・会社名・役職・氏名などを入力する手間が発生します。

そこで、「めんどうな送付状作成をGASで自動化しよう!」が、このシリーズのテーマです。

Googleサービスのひとつである「Google連絡先」の登録データを送付状の宛先に使用することで、送付状が簡単に作れます。

このシリーズでは「送付状作成ツール」を題材として、「Google連絡先の登録データをスプレッドシートに取得する方法」を紹介していきます。

送付状作成ツールの全体像

「自動化でバックオフィス革命」がモットーのオートメーションラボ株式会社では、このような流れで「送付状作成」を行っています。

  • 名刺管理アプリで撮影した取引先のデータを「Google連絡先」に自動登録
  • 「Google連絡先」のデータを「Googleスプレッドシート」に取得(GAS)
  • 「Googleスプレッドシート」から「送付状」にデータ転記(GAS)
送付状作成ツールの全体像

スマホアプリで取引先の方の名刺を撮影すれば、あとはGASの力で、ほぼ自動で送付状が作れてしまうんですね。

※この連載シリーズは、GASの処理である赤枠部の範囲を紹介します。シリーズの最後で実物のツール(スプレッドシート)を公開しますので、ぜひご活用ください。

送付状作成ツールの全体像2

Google連絡先の登録データをスプレッドシートに取得する

当シリーズのメインテーマは「Google連絡先の登録データをスプレッドシートに取得する処理」です。

Google連絡先の取得

スクリプトを実行するたびに、新規の登録データ(※)を差分追加します。※スクリプト前回実行時から今回実行までの間に新規登録した連絡先

スプレッドシートへの書き出しイメージは下記のとおりです。Google連絡先のエクスポート機能で出力したCSVよりも、はるかに見やすく管理できます!

スプレッドシートに取得のイメージ

 

Google連絡先から氏名を取得する

この記事では「Google連絡先」からデータを取得する最初の一歩として、「氏名」データを取得する方法を紹介します。

サンプルデータとして登録している4件の「氏名」を取得してみます。

Google連絡先の登録データ

それではGASでコードを書いていきましょう!

GASでGoogle連絡先にアクセスするContactAppクラス

G Suite Servicesでは、「Google連絡先」を操作するための「Contactsサービス」が提供されています。

ContactAppクラスとはContactsサービスの最上位のオブジェクトです。自分の「Google連絡先」にアクセスして、新規連絡先の「作成」や、既存連絡先の「取得・削除・更新」ができます。公式ドキュメントはこちら

Google連絡先の連絡先一覧を取得する

ContactAppクラスのgetContactsメソッドで「Google連絡先」の連絡先一覧を取得します。

getContactsメソッド
  • ContactAppクラス.getContacts()

自分のGoogle連絡先に登録されているすべての連絡先を取得します。

※戻り値はContactクラスの配列です

連絡先一覧を取得するコードがこちらです。

戻り値が配列になっていることが確認できます。4件の連絡先が登録されているので、4件のContactオブジェクトが配列に格納されています。

この配列(連絡先一覧)に格納されているのは、「Contactオブジェクト」です。Contactオブジェクトには、氏名・会社情報など、ひとり分の全データが含まれています。

Contactオブジェクト

 

※getContactsメソッドは、Google連絡先の「連絡先」「その他の連絡先」のすべてを取得します。

  • その他の連絡先 … Google サービスでやり取りしたことのあるユーザーは自動的に [その他の連絡先] に保存されます
Google連絡先とその他の連絡先

Contactオブジェクトから氏名を取得する

ここからはContactオブジェクトを操作します。ContactクラスのgetFullNameメソッドで「氏名」を取得できます。

※Google連絡先には「氏名」の項目はないので、「姓」「名」を結合した文字列が返ります。

getFullNameメソッド
  • Contactオブジェクト.getFullName()

連絡先の「氏名」を取得します(姓と名を結合した文字列)

コードがこちらです。「連絡先一覧の配列」(変数contacts)をループして、Contactオブジェクトから「氏名」を一つずつ取り出します。

 

スクリプト実行ログです。Google連絡先に登録されている全4件の氏名データが取得できました。

 

他の項目も同じ要領で取得できます。「会社情報を取得するメソッド」「住所情報を取得するメソッド」など、Contactクラスには様々なメソッドが用意されています公式ドキュメントはこちら

主に、4種類のメソッドが存在します。

  • ①add ~ 「作成」
  • ②delete ~, remove ~ 「削除」
  • get ~ 「取得」
  • ④set ~ 「更新」

 

(参考)Contactオブジェクトから姓・名を個別に取得する

Google連絡先の「姓」「名」を個別に取得するメソッドも存在します。

参考
  • Contactオブジェクト.getFamilyName()

連絡先の「姓」を取得します。

  • Contactオブジェクト.getGivenName()

連絡先の「名」を取得します。

コードがこちらです。

 

スクリプト実行ログです。「姓」「名」を個別に取得できました。

 

【まとめ】Google連絡先から氏名を取得する

「送付状作成ツールの全体像」と「Google連絡先から氏名を取得する方法」を紹介しました。

  • GASで「Google連絡先」にアクセスするContactAppクラス
  • ContactAppクラスのgetContactsメソッドで「Google連絡先」の連絡先一覧を取得できる(返り値はContactクラスの配列)
  • ContactクラスのgetFullNameメソッドで氏名データを取得する

 

次回は、Google連絡先から「会社名」と「役職」を取得する方法を紹介します。「フィールド」という考え方がポイントになってきますよ。

GASでGoogle連絡先の「会社名」と「役職」を取得する【送付状作成ツール②】

2019.11.02

 


sweeep|請求書AI-OCR

請求書の会計処理を自動化します
請求書AI-OCR「sweeep」

面倒な請求書の会計処理をAIで自動化。100枚をたった3分で処理できます。月末に貯まった請求書を一掃しましょう。