数値や日付を出力する際に、指定した桁数になるまで0で埋めたい(ゼロパディング)という場面がよくあると思います。
VBAには専用の関数は用意されていませんが、Right関数を利用することで、簡単にゼロパディングを実現することができます。
例えば、ある数字の左に0を埋めて、5桁の文字列として表示するには、次のように行います。
Dim num As Integer
num = 3
Dim formattedNum As String
formattedNum = Right('00000' & num, 5)
MsgBox formattedNum
'00005
Right関数は、第一引数に指定した文字列の右側から、第二引数に指定した文字数分の部分文字列を抽出するための関数です。数値の左側に4つの0を付けた上でRight関数を適用させることで、数値の桁数に関わらず先頭が0で埋められた5桁の文字列を取得することができます。
このテクニックは、0ではなく空白で埋めたい場合にも利用ができます。その場合は、0の代わりに' '(スペース)を並べるだけです。
ちなみに右埋めをしたい場合は、Left関数を利用します。次の例では、文字列の右側を空白埋めして5桁の文字列にしています。
Left(str & ' ', 5)
当たり前ではありますが、埋められる数値や文字列が指定した桁数よりも大きい場合は、はみ出した部分が削除されてしまうので注意してください。
6693