Google Apps Script(以下GAS)を使って、
住所から郵便番号を検索するツールを作成する。
データは郵便局ではなくGoogle Mapを使う。
Google Map APIだと準備が面倒なので、
通常のGoogle Mapで検索する流れ。
まず、住所はGoogle Sheetにまとめておく。
住所データはこんな感じ↓
住所 | 郵便番号 |
---|---|
北海道旭川市ほげほげ | |
北海道札幌市ほげほげ |
ソースはこんな感じ↓
/**
* 住所から郵便番号検索
*/
function searchZip() {
var response;
var zip;
var mDiff;
var mStart = new Date();
var url = 'https://google.co.jp/maps/search/';
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('対象シート名');
// データをすべて配列に
var values = sheet.getDataRange().getValues();
try {
values.forEach(function(value) {
// 既に入力済みは無視
if (value[1].length > 0) {
return;
}
// 6分の制限時間を超えないよう5分くらいでやめる
mDiff = new Date() - mStart;
if (mDiff > 300000) {
return;
}
// グーグルマップで検索
response = UrlFetchApp.fetch(url + value[0]).getContentText();
// 検索結果に郵便番号があるかチェック
zip = response.search('〒');
if (zip >= 0) {
// 郵便番号を取得
value[1] = response.substr(zip + 1, 8);
} else {
// 取得できなかった住所はログに
Logger.log(value[0]);
}
// グーグルに迷惑をかけないよう配慮
Utilities.sleep(1000);
});
} catch(e) {
// 何かエラーがあれば出力
Logger.log(e);
}
// データを戻す
sheet.getDataRange().setValues(values);
}
使わせて頂きました。素晴らしいです。
もったいないお言葉(;_;)
ありがとうございます!!!