文字の先頭に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

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です