法律の条文は、難解だ。とりわけ、私のような一般人にとっては。
必要に迫られて読んだのは、「輸出貿易管理令」だった。
日本では外国為替及び外国貿易法(外為法)に基づき、輸出に対し管理が必要だ。具体的には輸出しようとする貨物、または提供しようとする役務*1が「ある条件」を満たす場合*2、事前に経済産業大臣の許可を要する。
輸出?うちの会社は輸出なんてしないから、関係ないよ。
⇒ × お客様が、自社から購入したものを輸出するかも(間接輸出)。
輸出?うちはソフト屋さんだから、関係ないよ。
⇒ × ソフトウェアも、条件を満たせば許可が必要。
輸出?「知りませんでした」で誤魔化せないかな。
⇒ × 過失も罪に問われる。
自社の責任が問われる違反となれば一定期間の輸出禁止となったり、罰金を科せられたり、大々的に報道されて社会的制裁を受けたりなど、会社の存続すら危ぶまれる結果になることもある。でも大丈夫。ちゃんと輸出等を管理して、必要に応じて事前申請し許可を貰う等のルールに従えば、何も怖くはない(のはず…)。
前置きが長くなったが、10年前、技術(機械設計)一辺倒だった私は輸出管理を担当することになった(正確には、輸出管理「も」)。その時は慣れない法律の条文を見て戸惑ったものの、Excel VBAの知識が二つの意味で役立ったので、その時の体験を紹介する。
① 条文を読み解く力
法律の条文は、解釈が複数にならないよう、誤解が起きないように、複数の解釈が出来ないように書かれている。そのため非常に回りくどく、難解なことが多い。
条文を読みなれていなかった私は、とにかく一文節ずつ、他の人が書いたコードのつもりで読み込んでみた。
例)貨物等省令第一条
二十二 ガス遠心分離機のロータに用いられる構造材料であって、次のいずれかに該当するもの
イ アルミニウム合金(鍛造したものを含む。)であって、引張強さが二〇度の温度において四六〇メガパスカル以上となるもののうち、外径が七五ミリメートルを超える棒又は円筒形のもの
勿論よく読めば理解できるが、噛み砕いて咀嚼しながら飲み込む必要がある。そこで、こんな風に書き換えてみる。
Function 二十二号イ(貨物 As 材質) As Boolean 二十二号イ = False If 使用可能(ガス遠心分離機のロータ) = False Then Exit Function If 貨物 <> アルミニウム合金 Then Exit Function If 引張強さ(貨物, 20℃) > 460MPa Then If 外径(貨物) > 75mm Then Select Case 形状(貨物) Case "棒" 二十二号イ = True Case "円筒形" 二十二号イ = True End Select End If End If End Function
棒や円筒形の定量的な定義が無いため、結局最終的には「定性的」な判断に頼らざるを得ない。そこは敢えてぼかしてあるような気もする。
何はともあれ、そのようにして読み込む工夫をしてみた。実際に上記のような書き換えは行っていないが、今になり振り返ってみると、Excel VBA の経験が役立っていたと思う。
② 判定ツールの作成
①で書いたように、この条文の中にはいくつかの条件分岐が存在する。そして分岐のために、いくつかの引数が存在する。であれば、実際に判定ツールを作らない手はない。
ということで、Excel VBAで判定用のツールを作成した。この判定ツールを社内で配付したことにより、以下の効果が得られた。
- 詳しくない人でも、正しい判定結果を得ることが出来る。
- 条件を正しく入力すれば、誰が判定しても同じ結果になる。
- 引数の値を確認するなど、チェックポイントが明確になる。
担当を離れた今にして思えば、考えなくても判定結果を得られるため、判定プロセスがブラックボックス化するというデメリットもあった。しかし、全員が正しく判定できるまで教育を徹底するのは困難だ。
いや、正確には、「教育は勿論必要だが、習熟するまで待っていられない」かな。
とにかく便利ツールと教育の両輪を回すことで、担当としての役割を何とかこなすことができた。
というわけで輸出管理を行っていて、未だ手作業で該非判定を行っている方には、上記のような補助ツールの作成と活用を是非お勧めしたい。補助ツールの作成は、法令の理解度向上に繋がるし、補助ツールの活用は、誤判定の防止と工数の削減に繋がるからだ。
なお、「補助ツール」と書いた理由は、人の手による最終確認が必要と思うから。ツールを盲信して法令違反になることは、何としても避けなければならないので。
以上、参考まで。