GASで簡単!スプレッドシート上で郵便番号から住所を自動入力する方法

GASを使ってスプレッドシート上で郵便番号から住所を自動入力することってできるのかなぁ…難しそうだけど、やってみたいな…
猫男
猫男
catman
catman
それならcatmanに任せておくんだ。GASを使えばスプレッドシートで郵便番号から住所を簡単に取得するスクリプトを組めるよう。

GASで郵便番号から住所を取得する方法

GAS郵便番号から住所を取得するには、外部のAPIを利用するのが一般的です。

今回は「Zipcoda API」を使用して住所を取得する方法を紹介します。

 

外部APIを使った住所取得の基本コード

次に示すスクリプトは、GASを使って郵便番号から住所を取得する基本のスクリプト構成です。


function getAddressFromPostalCode(postalCode) {
  postalCode = String(postalCode)
    .replace('.0', '')
    .replace('-', '')
    .replace(/\D/g, '')
    .padStart(7, '0');

  var url = 'https://zipcoda.net/api?zipcode=' + postalCode;

  var response = UrlFetchApp.fetch(url, {
    muteHttpExceptions: true
  });

  var statusCode = response.getResponseCode();
  var text = response.getContentText();

  Logger.log(url);
  Logger.log(statusCode);
  Logger.log(text);

  if (statusCode !== 200) {
    return 'APIエラー: ' + statusCode;
  }

  var data = JSON.parse(text);

  if (data.items && data.items.length > 0) {
    var item = data.items[0];
    return item.components[0] + item.components[1] + item.components[2];
  }

  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列目に住所を自動で入力します。

郵便番号は2行目以降に記入

 

実践

例えば、こんな感じでスプレッドシートを用意。

スプレッドシート 郵便番号から住所

この状態でfillAddressを実行すると、

スプレッドシート 郵便番号から住所

こんな感じで、B列に住所はいるんですね。

ぜひ読者の方も1つ試してみてください。

 

スクリプトを書くことで郵便番号から住所が自動で入力されるなんて、すごいですね!
猫男
猫男
catman
catman
しっかり試すんだ。GASはスプレッドシートの強力な味方になるさ。

 

EARTHPG 自動化研究所

「その作業、仕組みにできます。」

Google Apps Script、Python、スプレッドシート自動化、WordPress開発、 API連携、AI活用まで対応。 小さな自動化から業務全体の設計まで、研究所が支援します。