ゼロ埋め番号文字列を作る関数を自作した

ゼロ埋め番号を作る関数

調子に乗って関数化

こいつら

akashi-keirin.hatenablog.com

akashi-keirin.hatenablog.com

をもとに、最大数に応じてゼロ埋め数字の文字列を返す関数を作ってみた。

仕様

書式

createNumberFilledByZero(最大数 , 対象数)

第1引数「最大数」には、ゼロ埋めケタ数の基準になる最大の数を指定する。Long型。たとえば、「1000」を指定すると4ケタのゼロ埋め数字文字列を作ることになる。

第2引数「対象数」には、ゼロ埋めにしたい数字を指定する。Long型。たとえば、第1引数が「1000」のときに、第2引数に「15」を指定すると、「0015」が返ることになる。

返り値

String型。第2引数で指定した数字を、第1引数によって決まるケタ数のゼロ埋め数字文字列にしたものが返る。処理中にエラーがでた場合は、「""」を返す。

ソースコード

リスト1
Public Function createNumberFilledByZero(ByVal numberOf As Long, _
                                         ByVal currentNumber As Long) As String
On Error GoTo errorHandler
  Dim maxNum As Long
  maxNum = numberOf
  Dim objNumber As Long
  objNumber = currentNumber
  Dim formatString As String
  Dim n As Integer
  Dim i As Integer
  n = Len(CStr(maxNum)) - 1
  formatString = String(n, "0") & "#"
  createNumberFilledByZero = Format(objNumber, formatString)
  Exit Function
errorHandler:
  createNumberFilledByZero = ""
End Function

イミディエイト・ウインドウで実行するために、アクセス修飾子は「Public」にしてあります。必要に応じて「Private」にしたら良いと思います。

実行結果

イミディエイト・ウインドウに、

?createNumberFilledByZero(10000,5)

及び、

?createNumberFilledByZero(1000,5)

と書いて実行した結果が、

f:id:akashi_keirin:20170716082517j:plain

コチラ。

ゼロ埋め番号ができている。

おわりに

何か意味あるんだろか、コレ???