法人番号のチェックデジットを計算するユーザー定義関数

Pocket

前に「マイナンバー法における法人番号の検査用数字」でJavaScriptを使ってチェックデジットを計算するサンプルを紹介しました。
今回はExcelで使えるユーザー定義関数を紹介します。
なお使用に際しては自己責任でお願いします。

検査数字を計算する関数

Function kensa_suji(kiso_bango)
    s = 0
    For n = 1 To 12
        p = Mid(kiso_bango, 12 - n + 1, 1)
        If n Mod 2 = 0 Then
            q = 2
        Else
            q = 1
        End If
        s = s + p * q
    Next n
    kensa_suji = 9 - s Mod 9
End Function

基礎番号(12桁)から検査数字(チェックデジット)を計算します。
VisualBasicエディタに貼り付けるとワークシート上で使用できます。
「=kensa_suji(基礎番号)」とします。

検査数字の正否を判定する関数

Function is_hojin_bango(hojin_bango)
    If Len(hojin_bango) <> 13 Then
        is_hojin_bango = False
    Else
        kensa = kensa_suji(Right(hojin_bango, 12))
        cd = Int(Left(hojin_bango, 1))
        If kensa = cd Then
            is_hojin_bango = True
        Else
            is_hojin_bango = False
        End If
    End If
End Function

法人番号(13桁)の検査数字が正しいかどうかを判定します。
「=is_hojin_bango(法人番号)」とします。
上述の「kensa_suji」と併せて使います。両方をVisualBasicエディタに貼り付けます。
基礎番号(12桁)と検査数字(1桁)が正しければ「TRUE」、正しくなければ「FALSE」になります。数字以外があるとエラーになるので「#VALUE!」になります。

[ 2015年7月9日 | カテゴリー: Excel | タグ: , , , ]

« | »

コメントを残す

メールアドレスが公開されることはありません。

送信してください。


タグ

カテゴリー

最近の投稿

最近のコメント

固定ページ

アーカイブ

stabucky

写真

メタ情報