【Excel マクロ】全国地方公共団体コード検査数字算出マクロ

VBA・Officeカテゴリを表すパンダのイラスト VBA・Office

全国地方公共団体コードは、情報処理の効率化と円滑化に資するため、総務省(当時:自治省)が昭和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

実行手順と使い方

  1. Excelを開き、Alt + F11 キーを押してVBE(Visual Basic Editor)を開きます。
  2. n

  3. メニューの「挿入」から「標準モジュール」をクリックします。
  4. n

  5. 開いたコードウィンドウに上記のVBAコードを貼り付けます。
  6. n

  7. F5 キーを押すか、実行ボタンを押してマクロ(CalcCheckDigit)を実行します。
  8. n

  9. ダイアログボックスが表示されたら、市区町村コードの1〜5桁目を入力します。
  10. n

  11. 計算された6桁目の検査数字と、完全なコードがメッセージボックスに表示されます。

注意事項

  • 入力する文字列は半角の数字5桁を指定してください。
  • n

  • 総務省の仕様変更や例外的なコード体系の更新については、必ず公式の仕様書をご確認ください。

この記事の更新履歴

この記事は、生成AIを活用した自動レビュー・更新フローにより内容を見直し、必要な修正を反映しています。

2026年9月12日

  • 削除リンク切れとなっていた旧外部サイトのZIPファイルダウンロードリンクを削除しました。
  • 変更旧ブログの引用ブロックとなっていたVBAコードを、WordPressの適切なコードブロックと解説、使用手順に再構成しました。
  • 追加総務省の地方公共団体コード仕様に基づく検査数字(チェックデジット)の計算ロジックと実行手順に関する解説を追加しました。

文書情報

記事タイトル
【Excel マクロ】全国地方公共団体コード検査数字算出マクロ
作成日
更新日
Source URL
https://papanda925.com/?p=625

ライセンス: 本記事のうち、当サイトが権利を有する本文・自作図表は、特記なき限り CC BY 4.0 で利用できます。生成AIを活用して作成・編集した内容を含みます。コードについて、別途ライセンス表示またはリンク先GitHubリポジトリのライセンスがある場合は、その条件を優先します。引用・第三者資料・画像・商標等は本ライセンスの対象外です。 利用ポリシー

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