全国地方公共団体コードは、情報処理の効率化と円滑化に資するため、総務省(当時:自治省)が昭和43年に設定したコードです。以来、変更が生じた都度メンテナンスが行われています。
参考(総務省のHP):総務省 地方公共団体コード
このコードの6桁目には、誤り検知のためのチェックデジット(検査数字)が仕込まれています。
参考(全国地方公共団体コード仕様 PDF):https://www.soumu.go.jp/main_content/000137948.pdf
この記事でできること
ExcelのVBAマクロを使って、全国地方公共団体コードの1〜5桁目を入力すると、正しい6桁目の検査数字(チェックデジット)を自動で算出できます。
VBAマクロのコード
総務省の仕様に基づき、検査数字を算出するVBAマクロの完全なコードは以下の通りです。
Sub CalcCheckDigit()
Dim Codes As String, Code As Integer
Dim 検査数字 As Integer, 積 As Integer, 積の和 As Integer, 余り As Integer
Dim i As Integer, j As Integer
Dim 乗数(1 To 5) As Integer
' 乗数の初期化 (6, 5, 4, 3, 2)
j = 6
For i = 1 To 5
乗数(i) = j
j = j - 1
Next i
' ユーザーからの入力を取得
Codes = InputBox("全国地方公共団体コード(1~5桁目)を入力してください", "検査数字算出")
If Len(Codes) <> 5 Then
MsgBox "1〜5桁のコードを入力してください。", vbExclamation
Exit Sub
End If
積の和 = 0
For i = 1 To 5
Code = CInt(Mid(Codes, i, 1))
積 = Code * 乗数(i)
積の和 = 積の和 + 積
Next i
' チェックデジットの算出ロジック
余り = 積の和 Mod 11
If 余り = 0 Or 余り = 1 Then
検査数字 = 0
Else
検査数字 = 11 - 余り
End If
MsgBox "算出された検査数字(6桁目)は: " & 検査数字 & vbCrLf & "完全なコードは: " & Codes & 検査数字, vbInformation, "計算結果"
End Sub
実行手順と使い方
- Excelを開き、
Alt + F11キーを押してVBE(Visual Basic Editor)を開きます。 - メニューの「挿入」から「標準モジュール」をクリックします。
- 開いたコードウィンドウに上記のVBAコードを貼り付けます。
F5キーを押すか、実行ボタンを押してマクロ(CalcCheckDigit)を実行します。- ダイアログボックスが表示されたら、市区町村コードの1〜5桁目を入力します。
- 計算された6桁目の検査数字と、完全なコードがメッセージボックスに表示されます。
n
n
n
n
n
注意事項
- 入力する文字列は半角の数字5桁を指定してください。
- 総務省の仕様変更や例外的なコード体系の更新については、必ず公式の仕様書をご確認ください。
n
この記事の更新履歴
この記事は、生成AIを活用した自動レビュー・更新フローにより内容を見直し、必要な修正を反映しています。
2026年9月12日
- 削除リンク切れとなっていた旧外部サイトのZIPファイルダウンロードリンクを削除しました。
- 変更旧ブログの引用ブロックとなっていたVBAコードを、WordPressの適切なコードブロックと解説、使用手順に再構成しました。
- 追加総務省の地方公共団体コード仕様に基づく検査数字(チェックデジット)の計算ロジックと実行手順に関する解説を追加しました。

