VBAで住所から最寄り駅を表示するマクロの作り方と設計ポイント

Visual Basic

Excel VBAでA列に入力された住所からB列に最寄り駅を表示するマクロは、地理情報を扱う場合の自動化に便利です。この記事では、VBAでの基本的な設計方法やデータ管理、検索ロジックの考え方を解説します。

住所と最寄り駅のデータ管理

まず、住所と最寄り駅の対応データをどのように管理するかが重要です。簡易的には別シートに表を作り、住所をキー、最寄り駅を値として保持します。

例:
Sheet2にA列:住所、B列:最寄り駅

VBAで検索する基本方法

VBAでは、VLookupやFindメソッドを使って住所に対応する最寄り駅を検索できます。

例:
Dim addr As String, station As String
addr = Cells(i, 1).Value
station = Application.WorksheetFunction.VLookup(addr, Sheets("Sheet2").Range("A:B"), 2, False)
Cells(i, 2).Value = station

ループで複数行対応

A列に複数の住所がある場合は、Forループで順番に処理します。

例:
For i = 2 To lastRow
addr = Cells(i, 1).Value
'VLookupで最寄り駅取得
Cells(i, 2).Value = Application.WorksheetFunction.VLookup(addr, Sheets("Sheet2").Range("A:B"), 2, False)
Next i

エラー処理とデータの存在チェック

住所がデータ表に存在しない場合はエラーになるため、On Error Resume NextやIf IsError()で対処します。

例:
On Error Resume Next
station = Application.WorksheetFunction.VLookup(addr, Sheets("Sheet2").Range("A:B"), 2, False)
If IsError(station) Then station = "不明"
Cells(i, 2).Value = station

まとめ

住所から最寄り駅を表示するVBAマクロは、住所-駅の対応表を用意し、VLookupやFindで検索する設計が基本です。複数行の処理やエラー対応を組み込むことで、より実用的で安定したマクロを作成できます。データを整理し、検索ロジックを明確にすることが成功のポイントです。

コメント

タイトルとURLをコピーしました