VBA 型番など文字列に0をつけて桁数を揃える 型番など文字列に0をつけて桁数を揃える Sub test() ' 型番など文字列に0をつけて桁数を揃える Dim myNum As Long Dim i As Long ' 出力先セルの表示形式を文字列に変換 Range("B3:B11").NumberFormatLocal = "@" For i = 3 To 11 ' 対象セルの文字数を取得(Len関数機能は文字列の数を取得する) myNum = Len(CStr(Cells(i, 1).Value)) ' 不足桁数に0を入れる(string関数機能は、特定文字を重複する) Cells(i, 2) = String(4 - myNum, "0") & Cells(i, 1) ' 文字数を格納する変数を初期化する myNum = 0 Next i End Sub 実行結果 汎用化したコード Sub test() ' 型番など文字列に0をつけて桁数を揃える Dim myNum As Long Dim i As Long Dim myMax As Long '最終行 Const myStart As Long = 3 'データ開始行 Const IntputC As Long = 1 '元データ列番号 Const OutputC As Long = 2 '出力先列番号 Const myLenth As Long = 4 '揃いたい桁数 '最終行を取得 myMax = Cells(Rows.Count, IntputC).End(xlUp).Row ' 出力先セルの表示形式を文字列に変換 Range(Cells(myStart, OutputC), Cells(myMax, OutputC)).NumberFormatLocal = "@" For i = myStart To myMax ' 対象セルの文字数を取得(Len関数機能は文字列の数を取得する) myNum = Len(CStr(Cells(i, IntputC).Value)) ' 不足桁数に0を入れる(string関数機能は、特定文字を重複する) Cells(i, OutputC) = String(myLenth - myNum, "0") & Cells(i, IntputC) ' 文字数を格納する変数を初期化する myNum = 0 Next i End Sub ― ― ― ― ― ― ― ― ― ― → Excel VBA基礎入門もくじ へ戻る 参考記事 『VBA セルの操作 セル表示形式の設定』 セル表示形式の設定 NumberFormatLocalプロパティによる書式設定 Sub test() ’ 1行目を文字列に Rows(1)…ameblo.jp 『VBA 数字を文字列へ変換する』 数字を文字列へ変換する Sub test() ’ 数字を文字列へ変換 Dim i As Long Dim myMax As Long …ameblo.jp 『VBA 文字列の長さを取得(Len関数)』 文字列の長さを取得(Len関数) 構文Len(string/varname)日本語訳Len(文字列 または 変数名)※ 文字列や変数以外のもの、例えば数字…ameblo.jp
『VBA セルの操作 セル表示形式の設定』 セル表示形式の設定 NumberFormatLocalプロパティによる書式設定 Sub test() ’ 1行目を文字列に Rows(1)…ameblo.jp
『VBA 文字列の長さを取得(Len関数)』 文字列の長さを取得(Len関数) 構文Len(string/varname)日本語訳Len(文字列 または 変数名)※ 文字列や変数以外のもの、例えば数字…ameblo.jp