桁数を揃えないといけない
エクセルVBAを使用し、桁数を揃えたい場合(パディング(埋め)処理)があります。
数値のゼロで埋める事が多いですが、固定長ファイルの場合は半角スペースで埋める必要があります。
0埋めして桁数を揃える(Format関数/Right関数)
■例(既存のレガシーシステムでは固定長でデータを作成し、インポートする必要がある
・固定長ファイルで、文字列の左側を空白で埋めたい
・固定長ファイルで、文字列の右側を空白で埋めたい
・固定長ファイルで、文字列の左側を空白で埋めたい
・固定長ファイルで、文字列の右側を空白で埋めたい
桁数を揃えるサンプルコード
Space関数もしくはRight関数 or Left関数を使用し空白埋めして、固定長データにします。
特にこだわりなければSpace関数で処理するのがシンプルでしょう。
コードサンプル
'■指定した文字列を半角スペースで埋めて桁数を揃える Public Sub sample() Dim str As String str = "12345" 'こちらのデータを使用し桁数を10桁に揃えたい '■Space関数を使用する場合 MsgBox str & Space(10 - LenB(str)) '→"12345 " MsgBox Space(10 - LenB(str)) & str '→" 12345" '■Left関数 or Right関数を上手く使う場合 MsgBox Left(str & " ", 10) '→"12345 " MsgBox Right(" " & str, 10) '→" 12345" End Sub
注意事項
- 今回は「12345」と数値の文字列データでしたが、Long型等の数値データでも結果は同様です。
- いわゆる文字列データ「例:あいうえお」でも結果は同様です。
(ただし、「あいうえお」は2バイト文字x5文字なので=10バイトなので空白は付与されません) - 全角スペースの場合はSpace関数では行えません。String関数で全角スペースを付与してください。
関連記事
半角スペース埋めではなく、ゼロ埋めしたい場合は下記記事参照ください。
0埋めして桁数を揃える(Format関数/Right関数)
コメント