GASで簡単!スプレッドシート上で郵便番号から住所を自動入力する方法
GASを使ってスプレッドシート上で郵便番号から住所を自動入力することってできるのかなぁ…難しそうだけど、やってみたいな…
猫男
catman
それならcatmanに任せておくんだ。GASを使えばスプレッドシートで郵便番号から住所を簡単に取得するスクリプトを組めるよう。
GASで郵便番号から住所を取得する方法
GAS郵便番号から住所を取得するには、外部のAPIを利用するのが一般的です。今回は「ZipCloud API」を使用して住所を取得する方法を紹介します。
外部APIを使った住所取得の基本コード
次に示すスクリプトは、GASを使って郵便番号から住所を取得する基本のスクリプト構成です。
function getAddressFromPostalCode(postalCode) {
var response = UrlFetchApp.fetch('https://zipcloud.ibsnet.co.jp/api/search?zipcode=' + postalCode);
var json = response.getContentText();
var data = JSON.parse(json);
if (data.results) {
var result = data.results[0];
return result.address1 + result.address2 + result.address3;
} else {
return '住所が見つかりませんでした';
}
}
この関数は、郵便番号を引数として渡すことで、該当の住所を取得することができます。
スプレッドシート上での自動入力
取得した住所をスプレッドシートに入力するために、次のようにスクリプトを仕上げます。
function fillAddress() {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var lastRow = sheet.getLastRow();
for (var i = 2; i <= lastRow; i++) {
var postalCode = sheet.getRange(i, 1).getValue();
var address = getAddressFromPostalCode(postalCode);
sheet.getRange(i, 2).setValue(address);
}
}
このスクリプトは、スプレッドシートの1列目にある郵便番号を基に、2列目に住所を自動で入力します。
スクリプトを書くことで郵便番号から住所が自動で入力されるなんて、すごいですね!やってみたいです!
猫男
catman
しっかり試すんだ。GASはスプレッドシートの強力な味方になるさ。
練習問題
郵便番号「1234567」を入力して、このスクリプトが住所を取得するか試してみてください。
取得した住所を、スプレッドシートの正しいセルに表示するための関数を実装しなさい。
解答・解説
function testAddressFetch() {
var postalCode = "1234567";
var address = getAddressFromPostalCode(postalCode);
Logger.log(address);
}
function getAddressFromPostalCode(postalCode) {
var response = UrlFetchApp.fetch('https://zipcloud.ibsnet.co.jp/api/search?zipcode=' + postalCode);
var json = response.getContentText();
var data = JSON.parse(json);
if (data.results) {
var result = data.results[0];
return result.address1 + result.address2 + result.address3;
} else {
return '住所が見つかりませんでした';
}
}
上記の「testAddressFetch」関数を使って、郵便番号から住所が取得できるかを確認することができます。この関数では、Logger.log()を使って取得した住所をログとして出力します。
- UrlFetchApp.fetch():指定したURLにHTTPリクエストを送信し、APIのデータを取得します。
- JSON.parse():JSON形式のテキストをJavaScriptオブジェクトに変換します。
- Logger.log():スクリプト内の情報をログとして出力します。デバッグに役立ちます。