Google Apps Script 時短ツール

【残業半減】GASで郵便番号検索APIを使って住所を自動入力

お仕事おつにゃッス🐈

文系未経験から社内SEになった、あっきょ(@daily_code_JP)です!

長くて馴染みのない住所を入力するのは非常に面倒くさいですよね?また、住所の自動ツールを導入しようと検討しても、高価でためらいがありますよね。

この記事ではそのお悩みを、コピペOKのGoogle Apps Scriptのコードで無料で解決します。

あっきょ
この記事は以下で悩んでいる人におすすめ!

  • 住所の入力を自動化して入力する手間を省きたい
  • 誰でも無料で使える住所の自動入力機能を作成したい
  • プログラミングでJavaScriptを学んだけど、何を作っていいかわからない

誰でも無料で簡単にできますので、お気軽に学んでいきましょう!

住所を自動で入力する関数のイメージ

GASで郵便番号検索APIを使った住所を自動入力する自作関数の概要

この記事で作成するのは、スプレッドシートのセル内に7桁の郵便番号を入力したら住所を自動で記入する機能です。

SUM関数COUNT関数のように手軽に扱える関数を自作します。

例えば、東京タワーの住所を入力する場合を考えます。

郵便番号「105-0011」を関数の引数に入力するだけで、住所の「東京都港区芝公園4丁目2−8」が記入されるものにします。

郵便番号検索APIとは?

郵便ポストのイメージ

郵便局検索APIとは、株式会社アイビスが運営する「zipcloud」から提供されているサービスで、誰でも無料で利用できます。

また、日本郵便が公開している郵便番号のデータなので、非常に安全だといえるでしょう。

プログラムにリクエストURLを書くだけで、簡単に住所に関するデータを瞬時に取得します。

詳しい内容は提供元のURLを掲載するので、クリックしてご参考ください。

【郵便番号検索APIの概要】
郵便番号検索API - zipcloud

住所を自動入力する準備

GASで住所を自動入力するものを2点用意します。

中身の説明

  • Google スプレッドシート ・・・ 郵便番号の入力 & コードの記述
  • 郵便番号検索API ・・・ 郵便番号から該当する住所を取得  

Google スプレッドシートの作成

郵便番号を入力すれば、住所を自動入力するスプレッドシートの設定をします。

Google スプレッドシートには「場所」,「郵便番号」,「住所」の3つの項目を作成します。

記入する内容詳細
場所住所を調べたい場所  (例: 東京駅、大阪城など)
郵便番号郵便番号を入力  (例: 1001000 もしくは 100-1000)
住所後にプログラムする関数を入力

それぞれの3項目はスプレッドシートの1行目に記入します。

Google Apps Script で住所を自動入力 スプレッドシートの準備

A列には住所を調べたい場所、B列にその郵便番号を記入します。今回は例として、以下のように記入しました。C列にはこれから作成する関数を埋めます。Google スプレッドシートの準備は以上です。

Google Apps Script で住所を自動入力 スプレッドシートに郵便番号を記入

サンプルコードを貼り付ける方法

サンプルコードはGoogle スプレッドシートにコピペします。

上バーの「拡張機能」の中にある「Apps Script」をクリック。ここにコードを書きます。

GASをスプレッドシートに記入する際の「Apps Script」の表示

住所を自動入力するサンプルコード

GASで郵便番号を書くと自動で住所が表示されるソースコードを公開して解説します。

解説の項目

  • サンプルコード
  • A, JSONデータの取得と読み込み
  • B, 一致する住所をJSONデータから出力

サンプルコード

ソースコードの全体です。右上にあるマークを押すとコードのコピペが一瞬でできます。

また、コード内で文頭にアルファベットが付いているコメントごとに詳細を説明していきます。

function searchAddress(code) {
  //A,JSONデータの取得と読み込み
  const requestUrl = `https://zip-cloud.appspot.com/api/search?zipcode=`+code; //リクエスト先(zipcloud)
  const response = UrlFetchApp.fetch(requestUrl).getContentText();//フェッチ通信
  const json = JSON.parse(response);//JSON読み込み

  //B,一致する住所をJSONデータから出力
  if (json.status === 200) {
    const addressData = json.results[0];
    const pref = addressData.address1;//県
    const city = addressData.address2;//市
    const town = addressData.address3;//町
    
    return pref + city + town;
  }else{
    return  "エラー"
  }

}

A, JSONデータの取得と読み込み

//A,JSONデータの取得と読み込み
const requestUrl = `https://zip-cloud.appspot.com/api/search?zipcode=`+code; //リクエスト先(zipcloud)
const response = UrlFetchApp.fetch(requestUrl).getContentText();
const json = JSON.parse(response);//JSON読み込み

住所データをAPIから取得する準備をします。

定数requestUrl の末尾には郵便番号を入て、取得する住所のリクエストURLを定義します。

Fetchメソッドで住所データをJSON形式で取得してデータを読み込みます。

【補足】JSON形式のデータとは?

JSON型はJavaScriptの連想配列と似た形式のデータで、データの送受信でよく利用されます。

したがって、連想配列内の値を取得する方法と同じようにデータを取り出します。

例えば、codeが「1000005」の場合の出力結果は以下になります。

{
status=200.0,
message=null,
results=[{address1=東京都, address3=丸の内, address2=千代田区, zipcode=1000005, kana3=マルノウチ, prefcode=13, kana1=トウキョウト, kana2=チヨダク}]
}
 



この記事では省略しますが、JSON形式の詳細は以下の2つのサイトをぜひご参考ください。

B, 一致する住所をJSONデータから出力

//B,一致する住所をJSONデータから出力
if (json.status === 200) {
  const addressData = json.results[0];
  const pref = addressData.address1; //県
  const city = addressData.address2; //市
  const town = addressData.address3; //町
    
  return pref + city + town;
  
}else{

  return  "エラー"
}

JSONデータを展開して一致する情報を取り出していきます。

ステータスの値に異常がなければ、「県+市+町」の文字列として住所を出力します。

仮にステータスが200以外だったら文字列の「エラー」を返します。

言い換えると、エラーが発生したら住所は出力されません。

コードの説明は以上です。

住所の自動入力のテスト

実際に住所が自動で入力できるかテストします。

「=searchAddress」とC列に記入し、引数にはセルの番号を記入します。

Google Apps Script で住所を自動入力 スプレッドシートのセルに関数を入力

実行がうまくいくと「県 + 市 + 町」の住所が表示されます。

日本国内ならどの住所にも対応しているので、ぜひ他も試してみてください。

Google Apps Script で住所を自動入力 実行結果

おわりに | GASのスキルをさらに高めるには

以上がGoogle Apps Scriptで、GASで住所を自動で検索する方法でした。

そのままコピペして日常業務で使いやすいように改修したり、プログラミングの練習や動作確認用に使ってみましょう。

GASでさらに業務効率化する場合、参考書やプログラミングスクールを使うとあなた自身でアプリを作るスキルが身に付きます

GASユーザーのあっきょがおすすめの勉強方法はこちら↓

スクール経験者のあっきょが82社から5つ厳選して紹介してるッス!
あっきょ

次回の記事もご期待ください!

-Google Apps Script, 時短ツール
-, , , , , , , , , , , , , , , , , , ,