VBScriptで、Space関数を使用して、ゼロパディング(0埋め)する方法を解説します。
記述例1
記述例1のソースコードです。
Option Explicit ' 桁数 Const DIGITS = 6 ' 数値 Const NUMBER = 123 ' 結果を格納する変数 Dim ret ' 0埋めした値の取得 ret = Replace(Space(DIGITS - Len(NUMBER)), Space(1), "0") & NUMBER ' 結果の表示 MsgBox(ret)
サンプルの実行結果です。
000123
処理の解説ですが、まず、Space関数で「桁数 – 文字数」分の半角スペースだけの文字列(サンプルでは、000)を作成しています。
それを、Replace関数で、0に置き換え、後ろに数値(サンプルでは、123)を繋げています。
よって、実行結果にある「000123」という、6桁の数値となります。
使用している各関数については、以下で詳しく説明しているので参考にしてみて下さい。
記述例2
記述例2のソースコードです。
Option Explicit ' 桁数 Const DIGITS = 6 ' 数値 Const NUMBER = 123 ' 結果を格納する変数 Dim ret ' 0埋めした値の取得 ret = Left(Replace(Space(DIGITS), Space(1), "0"), DIGITS - Len(NUMBER)) & NUMBER ' 結果の表示 MsgBox(ret)
サンプルの実行結果です。
000123
処理の解説ですが、まず、Left関数とSpace関数で「桁数 – 文字数」分の半角スペースだけの文字列(サンプルでは、000)を作成しています。
それを、Replace関数で、0に置き換え、後ろに数値(サンプルでは、123)を繋げています。
よって、実行結果にある「000123」という、6桁の数値となります。
使用している各関数については、以下で詳しく説明しているので参考にしてみて下さい。
関数化してみた
ゼロパディング処理を行うにあたり、複数の関数を使用しているので、
関数化して以下のように簡単に呼び出せるようにしてみました。
ZeroPadding(桁数, 数値)
下記はサンプルのソースコードです。
Option Explicit ' 結果を格納する変数 Dim ret ' 0埋めした値の取得 ret = ZeroPadding(6, 123) ' 結果の表示 MsgBox(ret) ' 処理の終了 WScript.Quit ' ゼロ埋め処理実行関数 Function ZeroPadding(digits, number) ZeroPadding = Left(Replace(Space(digits), Space(1), "0"), digits - Len(number)) & number End Function
サンプルの実行結果です。
000123
リンク
コメント