プロプログラマ

プログラマーを職業としてます。 Flex,Air,C#,Oracle,HTML+JSの言語ノウハウを中心に情報発信していきます

[WSH VBS] 数字をゼロ埋めするには

VBScriptで数字の先頭ゼロ埋めして桁を揃えるのは、簡単に思えて意外に面倒です。

VBにはもともとFormat関数があるのですが、VBScriptには何故かこれがありません。
なんでだろう??

とう言うわけで、ゼロ埋めは関数を作って対応します。
まずは、2種類の方法を作ってみました。どちらも同じ結果を返します。


message = vbNullString
message = message & “AlignZero1(3, 6) = ” & AlignZero1(3, 6) & vbNewLine
message = message & “AlignZero1(12, 6) = ” & AlignZero1(12, 6) & vbNewLine
message = message & “AlignZero1(999999, 6) = ” & AlignZero1(999999, 6) & vbNewLine
message = message & “AlignZero1(1234567, 6) = ” & AlignZero1(1234567, 6) & vbNewLine

message = message & “AlignZero2(3, 6) = ” & AlignZero2(3, 6) & vbNewLine
message = message & “AlignZero2(12, 6) = ” & AlignZero2(12, 6) & vbNewLine
message = message & “AlignZero2(999999, 6) = ” & AlignZero2(999999, 6) & vbNewLine
message = message & “AlignZero2(1234567, 6) = ” & AlignZero2(1234567, 6) & vbNewLine

WScript.Echo message

‘数値の前を指定桁数でゼロ埋めする
‘指定桁数を超えた数値が指定された場合は、そのままの値を返す
‘value: 対象の数値
‘digit: 桁数
Function AlignZero1(value, digit)
If digit – Len(Value) < 0 Then AlignZero1 = value Exit Function End If AlignZero1 = Replace(Space(digit - Len(value)) & value, Space(1), "0") End Function '数値の前を指定桁数でゼロ埋めする '指定桁数を超えた数値が指定された場合は、そのままの値を返す 'value: 対象の数値 'digit: 桁数 Function AlignZero2(value, digit) If digit - Len(Value) < 0 Then AlignZero2 = value Exit Function End If AlignZero2 = Right(Repeat("0", digit) & value, digit) End Function Function Repeat(value, count) Dim result result = "" For i = 0 to count - 1 result = result & value Next Repeat = result End Function [/vb] 他にもいろんな方法があると思います。 AlignZero1のほうが、他の関数を作らなくていいので簡単かな。 お試しあれ。

 

== ランキングに参加しています。ぜひクリックお願いします ==

プログラム ブログランキングへ
にほんブログ村 IT技術ブログへ
にほんブログ村

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください