業務効率化

"yymm"+連番で採番

250101や251201のような、年の下二桁+採番した二桁の月+その月に採番した連番のを取得するケース用です。

もちろん20250101のように”yyyymm”+連番や、25010101のように”yyyymmdd”+連番のようにすることも可能です。

記事の内容

・挙動

・Format関数について

台帳にすでに250401と記載されている場合での4月と5月実施した際の挙動は下記となります。

・今日が2025年4月31日の場合・・・連番は250402となります。

・今日が2025年5月1日の場合・・・連番は250501となります。

今回は先頭にABCを加えた合計8桁の番号で採番しています。

挙動

コード

コードはこちら
Sub 連番取得()

    Dim yymm As String, mm As String, 連番 As String, pnt As Range
    Dim prg As Long, rng0 As Variant

    ' 台帳から承認Noを取得設定
    Set pnt = ThisWorkbook.ActiveSheet.Range("A" & Rows.Count).End(xlUp).Offset(1)
    yymm = Format(CStr(Date), "yymm")

    ' 新しい月の場合
    If yymm <> Mid(pnt.Offset(-1).Value, 4, 4) Then
        OKdate = "ABC" & yymm & "01"
        pnt = OKdate
    ' その月の場合
    Else
        連番 = Format(Val(Mid(pnt.Offset(-1).Value, 8)) + 1, "00")
        OKdate = "ABC" & yymm & 連番
        pnt = OKdate
    End If

End Sub

ポイント機能

・Format関数による連番処理

・年月による連番取得

Format関数による連番処理

エクセルでは「01」のようなゼロから始まる数値は、自動で除外されるようになっています。連番が二桁で1番を示したい場合は01としても一桁で表示れてしまいます。

そんな時に用意されているのが、Format関数です。第二引数に対して"00"と指定することで、桁を2桁にすることができます。これは年月でも使用しており、"yymmdd"のようにすれば取得した年月日データを6桁に調整できます。

年月による連番取得

判定条件として、年と月を現在の年月と比較し、採番をしています。

一つ前にある連番が24から始まる2024年時採番している場合、2025年に採番すると文頭は25年になります。

月についても同様で、一つ前の連番が4月でと採番時も4月であればそのまま、採番時が5月の場合は新たにmmが採番時の月となり、さらに連番に01が追加されます。

yyyymmdd+連番にする場合は、下記のように少し編集するだけで可能です。

Dim yymmdd as String  

  ' 台帳から承認Noを取得設定
    Set pnt = Worksheets(1).Range("A" & Rows.Count).End(xlUp).Offset(1)
    yymmdd = Format(CStr(Date), "yymmdd")

    ' 新しい月の場合
    If yymm <> Mid(pnt.Offset(-1).Value, 4, 4) Then
        OKdate = "ABC" & yymmdd & "01"
        pnt = OKdate
    ' その月の場合
    Else
        連番= Format(Val(Mid(pnt.Offset(-1).Value, 8)) + 1, "00")
        OKdate = "ABC" & yymmdd & 連番
        pnt = OKdate
    End If

-業務効率化