概要
セルに郵便番号を入力することで、住所を表示してくれる関数があったらなぁと思って書いたプログラムが動かなくなっていたので、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