【VBScript】Space関数で簡単!ゼロパディング(ゼロ埋め)


この記事はプロモーションを含みます。

VBScript

ホーム > VBScript 逆引きリファレンス

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

コメント

タイトルとURLをコピーしました