Help us understand the problem. What is going on with this article?

Googleスプレッドシートで郵便番号から住所を表示する関数 その3

概要

セルに郵便番号を入力することで、住所を表示してくれる関数があったらなぁと思って書いたプログラムが動かなくなっていたので、zipcloudさんのAPIを使って書き直してみたプログラムの出来がイマイチだった。
というわけで、今回は更にzipcloudさんのAPIを使わずに自前でAPIを作成して書き直しました。

API側のサーバは無料レンタルサーバのXFREEをお借りし、郵便番号データは郵便局本家で配布している郵便番号データを成形して利用しています。
API側のプログラムの中身は内緒。
サーバは完全に無料で利用させてもらっていますので性能までは求められませんが、XFREEさんが許してくれる限りこのまま放置で使いたい人が何気に使う形でいいかなぁと思っています。

使い方

下記をスクリプトエディタにコピペすれば関数を利用できるようになります。
=ZIP_ADDRESS("154-0004","address1")
みたいな感じ。

利用できるデータの種類は次の通りです。
zipcode 郵便番号
prefcode 都道府県コード
address1 都道府県名
address2 市区町村名
address3 町域名

function ZIP_ADDRESS(zip,part)
{
  zip = zip.replace(/\-/g, '');
  var response = UrlFetchApp.fetch('http://zipaddress.php.xdomain.jp/search.php?v=' + zip);
  var res = JSON.parse(response.getContentText());
  if (res.status == 400) {
    return res.message;
  }

  if (res.results) {
    var address = res.results[0];
    return (address[part]) ? address[part] : "";
  } else {
    return "該当するデータがありません";
  }
}

ただ、いつのまにかGASのセキュリティ仕様が変わっているみたいで、外部システムのデータを読み込むときに承認が必要と言われると思います。
そんなときはこちらの記事を参考に承認すれば大丈夫です!
https://qiita.com/h-sto/items/fdde0905d0a4070d18fc

KensukeSakakibara
ずっとお絵描きをして生きてきましたが、趣味だったプログラミングがいつのまにか本職になっていたWEBプログラマです。 高負荷環境でのLAMPが得意でソシャゲとか作ってました。 PerlからのJavaからのPHPerで、次はGoがやりたいと思ってますが現在はUnityでC#が多いです。 あと電子工作とかも割と好きでAVR派です。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away