「kensasujiKeisan_Macro.zip」をダウンロード
市区町村コードは、国勢調査等で知らず知らずに利用している。利用方法は以下のとおりで、コード化されたのはかなり昔の話のようだ。
全国地方公共団体コードは、情報処理の効率化と円滑化に資するため、コード標準化の一環として、総務省(当時:自治省)が昭和43年に全国の都道府県及び市区町村のコードを設定したものです。以来、変更が生じた都度、メンテナンスを行っています。
このコードだが、全国地方公共団体コード仕様を確認すると、いわゆるチェックデジット(検査数字)が6桁目に仕込まれている。
参考(全国地方公共団体コード仕様):http://www.soumu.go.jp/main_content/000137948.pdf
上記の仕様に基づき、算出ロジックをにVBAマクロに落とし込むとこんな感じになる。
Sub test()
Dim Codes As String, Code As Integer, _
検査数字 As Integer, 積 As Integer, 和 As Integer, 積の和 As Integer, 余り As Integer, _
i As Integer, j As IntegerDim 乗数(5) As Integer
j = 6
For i = 1 To 5
乗数(i) = j
j = j – 1
Next iCodes = InputBox("全国地方公共団体コード(1~5桁目)を入力")
積の和 = 0
For i = 1 To 5
Code = CInt(Mid(Codes, i, 1)) ‘1つづつ取り出し
積 = Code * 乗数(i)
積の和 = 積の和 + 積
Debug.Print "コード:" & Code & " 乗数:" & 乗数(i); " 積の和:" & 積の和
Next iIf 積の和 < 11 Then
検査数字 = 11 – 積の和
Else
余り = 積の和 Mod 11
If 余り = 0 Then
検査数字 = 1
ElseIf 余り = 1 Then
検査数字 = 0ElseIf 余り = 10 Then
検査数字 = 1
Else
検査数字 = 11 – 余り
End If
End IfMsgBox "検査数字は" & 検査数字
End Sub
コメント