入力チェックがザル。

特に市区町村コードのチェックが無いのは信じられん。
接種対象地域の住民かどうかを確認するために、市区町村コードの頭2桁(東京都なら13)を見ているだけなのだろう。
市町村など1000程度しかないのだから、テーブルを用意して、Findかけて判定すればいい。

誰でも知ってる、EXCELで例示すれば、

Function SampleCheck(Byval Code As String) As Boolean
Dim RngScope As Range ' 検索範囲
Dim RngResult As Range ' 検索結果
Set RngScope = Range("A1:A1000") ' ←実際には市町村コードのテーブルの範囲を指定
Set RngResult = RngScope.Find(Code)
SampleCheck = Not (RngResult Is Nothing)
End Function

のような関数を作って、チェックするだけ。(C++でも似たようなコードになる。Javaならcontains、Pythonならlist.indexで同じように作れる。アセンブラでもロジックは一緒)

このシステム、学生さんのプログラム実習でも、落第のレベルだよ。