文字の先頭に0を入れて揃える【ExcelVBA】
■Len関数 →文字数を返す関数 ※数値を指定 → エラー その為、■CStr関数 →値を文字列型(String)に変換
文字列に変換してから文字数を数える
■NumberFormatLocalプロパティ →表示形式を取得・設定 "@"で文字列にする
■String関数 →特定の文字を指定された長さ文用意 引数 Number 返される文字の長さ(整数Longで指定) Character 文字or文字コード
元に戻す場合はVal関数 →数字を数値に変換 ※変換できない時は0を返す
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
実際に使用したサンプルコード
Option Explicit
Public Sub sample()
'今の文字数を入れる用の変数
Dim n As Integer
'繰り返し用のカウンタ変数
Dim i As Integer
'最終的に合わせたい文字数
Dim 文字数 As Integer
'合わせたい文字数を設定
文字数 = 5
For i = 6 To 18
'今の文字数を数える 数値の場合エラーになる為文字列に変換
n = Len(CStr(Cells(i, 2).Value))
'合わせたい文字数から今の文字数を引いた分0を入れて&で合わせる
Cells(i, 2).Value = String(文字数 - n, "0") & Cells(i, 2).Value
Next
End Sub
Public Sub sam()
Dim i As Integer
'順番に数値に変換して入れる
For i = 6 To 18
Range("B18").Value = Val(Range("B18").Value)
Next
End Sub