0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

テスト

Last updated at Posted at 2025-07-20

Option Explicit
'--------------------------------------------------------
' C列の値が …
' ①「2025/1-2025/4」→
' ・元セルを「2025/1-2025/3」に書換
' ・直下に1行挿入し C列へ「2025/4」
'
' ②「2025/1-2025/5」→
' ・元セルを「2025/1-2025/3」に書換
' ・直下に1行挿入し C列へ「2025/4-2025/5」
'
' それ以外のセルは触りません。
'--------------------------------------------------------
Sub Split_2025_Ranges_C()

Dim ws As Worksheet
Dim lastRow As Long, r As Long
Dim txt As String

Set ws = ActiveSheet                    '←必要なら固定
Application.ScreenUpdating = False      '画面チラつき防止

lastRow = ws.Cells(ws.Rows.Count, "C").End(xlUp).Row

'▼ 後ろから上へループ(行挿入で行番号がズレないように)
For r = lastRow To 1 Step -1
    txt = Trim$(ws.Cells(r, "C").Value)
    
    Select Case txt
        
        Case "2025/1-2025/4"
            '―― 元セルを修正 ――
            ws.Cells(r, "C").Value = "2025/1-2025/3"
            
            '―― 1行挿入し「2025/4」 ――
            ws.Rows(r + 1).Insert Shift:=xlDown, _
                                CopyOrigin:=xlFormatFromLeftOrAbove
            ws.Cells(r + 1, "C").Value = "2025/4"
            
        Case "2025/1-2025/5"
            '―― 元セルを修正 ――
            ws.Cells(r, "C").Value = "2025/1-2025/3"
            
            '―― 1行挿入し「2025/4-2025/5」 ――
            ws.Rows(r + 1).Insert Shift:=xlDown, _
                                CopyOrigin:=xlFormatFromLeftOrAbove
            ws.Cells(r + 1, "C").Value = "2025/4-2025/5"
            
        '▼他パターンは何もしない
    End Select
Next r

Application.ScreenUpdating = True

End Sub

Option Explicit

Sub Split_2025_Ranges_B()

Dim ws As Worksheet
Dim lastRow As Long, r As Long
Dim txt As String

Set ws = ActiveSheet                '← 必要なら固定
Application.ScreenUpdating = False  '画面チラつき防止

lastRow = ws.Cells(ws.Rows.Count, "B").End(xlUp).Row

'▼ 後ろから上へ(行挿入で行番号がずれても安全)
For r = lastRow To 1 Step -1
    
    txt = Trim$(ws.Cells(r, "B").Value)
    
    Select Case txt
        
        '──────── 1Q + 1 行 ────────
        Case "2025/1-2025/4"
            ws.Cells(r, "B").Value = "2025/1-2025/3"
            ws.Rows(r + 1).Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
            ws.Cells(r + 1, "B").Value = "2025/4"
        
        Case "2025/1-2025/6"
            ws.Cells(r, "B").Value = "2025/1-2025/3"
            ws.Rows(r + 1).Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
            ws.Cells(r + 1, "B").Value = "2025/4-2025/6"
        
        '──────── 1Q + 2 行 ────────
        Case "2025/1-2025/7"
            ws.Cells(r, "B").Value = "2025/1-2025/3"
            ws.Rows(r + 1 & ":" & r + 2).Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
            ws.Cells(r + 1, "B").Value = "2025/4-2025/6"
            ws.Cells(r + 2, "B").Value = "2025/7"
        
        Case "2025/1-2025/8"
            ws.Cells(r, "B").Value = "2025/1-2025/3"
            ws.Rows(r + 1 & ":" & r + 2).Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
            ws.Cells(r + 1, "B").Value = "2025/4-2025/6"
            ws.Cells(r + 2, "B").Value = "2025/7-2025/8"
        
        Case "2025/1-2025/9"
            ws.Cells(r, "B").Value = "2025/1-2025/3"
            ws.Rows(r + 1 & ":" & r + 2).Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
            ws.Cells(r + 1, "B").Value = "2025/4-2025/6"
            ws.Cells(r + 2, "B").Value = "2025/7-2025/9"
        
        '──────── 1Q + 3 行 ────────
        Case "2025/1-2025/10"
            ws.Cells(r, "B").Value = "2025/1-2025/3"
            ws.Rows(r + 1 & ":" & r + 3).Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
            ws.Cells(r + 1, "B").Value = "2025/4-2025/6"
            ws.Cells(r + 2, "B").Value = "2025/7-2025/9"
            ws.Cells(r + 3, "B").Value = "2025/10"
        
        Case "2025/1-2025/11"
            ws.Cells(r, "B").Value = "2025/1-2025/3"
            ws.Rows(r + 1 & ":" & r + 3).Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
            ws.Cells(r + 1, "B").Value = "2025/4-2025/6"
            ws.Cells(r + 2, "B").Value = "2025/7-2025/9"
            ws.Cells(r + 3, "B").Value = "2025/10-2025/11"
        
        Case "2025/1-2025/12"
            ws.Cells(r, "B").Value = "2025/1-2025/3"
            ws.Rows(r + 1 & ":" & r + 3).Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
            ws.Cells(r + 1, "B").Value = "2025/4-2025/6"
            ws.Cells(r + 2, "B").Value = "2025/7-2025/9"
            ws.Cells(r + 3, "B").Value = "2025/10-2025/12"
        
        '──────── 何もしない ────────
        Case Else
            '対象外はスキップ
    End Select
    
Next r

Application.ScreenUpdating = True

End Sub

Option Explicit
'--------------------------------------------------------
' ◆ C 列専用版 ◆
' C 列に下記いずれかの文字列があるときだけ処理
'
' 2025/1-2025/4 → 元セル: 2025/1-2025/3
' +1 行: 2025/4
'
' 2025/1-2025/6 → 元セル: 2025/1-2025/3
' +1 行: 2025/4-2025/6
'
' 2025/1-2025/7 → 元セル: 2025/1-2025/3
' +2 行: 2025/4-2025/6 / 2025/7
'
' 2025/1-2025/8 → 元セル: 2025/1-2025/3
' +2 行: 2025/4-2025/6 / 2025/7-2025/8
'
' 2025/1-2025/9 → 元セル: 2025/1-2025/3
' +2 行: 2025/4-2025/6 / 2025/7-2025/9
'
' 2025/1-2025/10 → 元セル: 2025/1-2025/3
' +3 行: 2025/4-2025/6 / 2025/7-2025/9 / 2025/10
'
' 2025/1-2025/11 → 元セル: 2025/1-2025/3
' +3 行: 2025/4-2025/6 / 2025/7-2025/9 / 2025/10-2025/11
'
' 2025/1-2025/12 → 元セル: 2025/1-2025/3
' +3 行: 2025/4-2025/6 / 2025/7-2025/9 / 2025/10-2025/12
'--------------------------------------------------------
Sub Split_2025_Ranges_C()

Dim ws As Worksheet
Dim lastRow As Long, r As Long, txt As String

Set ws = ActiveSheet
Application.ScreenUpdating = False

lastRow = ws.Cells(ws.Rows.Count, "C").End(xlUp).Row

'―― 後ろから上へ走査(行挿入ズレ防止) ――
For r = lastRow To 1 Step -1
    txt = Trim$(ws.Cells(r, "C").Value)
    
    Select Case txt
    '──────── 1Q + 1 行 ────────
    Case "2025/1-2025/4"
        ws.Cells(r, "C").Value = "2025/1-2025/3"
        ws.Rows(r + 1).Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
        ws.Cells(r + 1, "C").Value = "2025/4"
        
    Case "2025/1-2025/6"
        ws.Cells(r, "C").Value = "2025/1-2025/3"
        ws.Rows(r + 1).Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
        ws.Cells(r + 1, "C").Value = "2025/4-2025/6"
    
    '──────── 1Q + 2 行 ────────
    Case "2025/1-2025/7"
        ws.Cells(r, "C").Value = "2025/1-2025/3"
        ws.Rows(r + 1 & ":" & r + 2).Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
        ws.Cells(r + 1, "C").Value = "2025/4-2025/6"
        ws.Cells(r + 2, "C").Value = "2025/7"
        
    Case "2025/1-2025/8"
        ws.Cells(r, "C").Value = "2025/1-2025/3"
        ws.Rows(r + 1 & ":" & r + 2).Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
        ws.Cells(r + 1, "C").Value = "2025/4-2025/6"
        ws.Cells(r + 2, "C").Value = "2025/7-2025/8"
        
    Case "2025/1-2025/9"
        ws.Cells(r, "C").Value = "2025/1-2025/3"
        ws.Rows(r + 1 & ":" & r + 2).Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
        ws.Cells(r + 1, "C").Value = "2025/4-2025/6"
        ws.Cells(r + 2, "C").Value = "2025/7-2025/9"
    
    '──────── 1Q + 3 行 ────────
    Case "2025/1-2025/10"
        ws.Cells(r, "C").Value = "2025/1-2025/3"
        ws.Rows(r + 1 & ":" & r + 3).Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
        ws.Cells(r + 1, "C").Value = "2025/4-2025/6"
        ws.Cells(r + 2, "C").Value = "2025/7-2025/9"
        ws.Cells(r + 3, "C").Value = "2025/10"
        
    Case "2025/1-2025/11"
        ws.Cells(r, "C").Value = "2025/1-2025/3"
        ws.Rows(r + 1 & ":" & r + 3).Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
        ws.Cells(r + 1, "C").Value = "2025/4-2025/6"
        ws.Cells(r + 2, "C").Value = "2025/7-2025/9"
        ws.Cells(r + 3, "C").Value = "2025/10-2025/11"
        
    Case "2025/1-2025/12"
        ws.Cells(r, "C").Value = "2025/1-2025/3"
        ws.Rows(r + 1 & ":" & r + 3).Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
        ws.Cells(r + 1, "C").Value = "2025/4-2025/6"
        ws.Cells(r + 2, "C").Value = "2025/7-2025/9"
        ws.Cells(r + 3, "C").Value = "2025/10-2025/12"
        
    '──────── それ以外は無視 ────────
    End Select
Next r

Application.ScreenUpdating = True

End Sub

Option Explicit
'--------------------------------------------------------
' ◆ C 列専用版 ◆
' C 列に下記いずれかの文字列があるときだけ処理
'
' 2025/1-2025/4 → 元セル: 2025/1-2025/3
' +1 行: 2025/4
'
' 2025/1-2025/6 → 元セル: 2025/1-2025/3
' +1 行: 2025/4-2025/6
'
' 2025/1-2025/7 → 元セル: 2025/1-2025/3
' +2 行: 2025/4-2025/6 / 2025/7
'
' 2025/1-2025/8 → 元セル: 2025/1-2025/3
' +2 行: 2025/4-2025/6 / 2025/7-2025/8
'
' 2025/1-2025/9 → 元セル: 2025/1-2025/3
' +2 行: 2025/4-2025/6 / 2025/7-2025/9
'
' 2025/1-2025/10 → 元セル: 2025/1-2025/3
' +3 行: 2025/4-2025/6 / 2025/7-2025/9 / 2025/10
'
' 2025/1-2025/11 → 元セル: 2025/1-2025/3
' +3 行: 2025/4-2025/6 / 2025/7-2025/9 / 2025/10-2025/11
'
' 2025/1-2025/12 → 元セル: 2025/1-2025/3
' +3 行: 2025/4-2025/6 / 2025/7-2025/9 / 2025/10-2025/12
'--------------------------------------------------------
Sub Split_2025_Ranges_C()

Dim ws As Worksheet
Dim lastRow As Long, r As Long, txt As String

Set ws = ActiveSheet
Application.ScreenUpdating = False

lastRow = ws.Cells(ws.Rows.Count, "C").End(xlUp).Row

'―― 後ろから上へ走査(行挿入ズレ防止) ――
For r = lastRow To 1 Step -1
    txt = Trim$(ws.Cells(r, "C").Value)
    
    Select Case txt
    '──────── 1Q + 1 行 ────────
    Case "2025/1-2025/4"
        ws.Cells(r, "C").Value = "2025/1-2025/3"
        ws.Rows(r + 1).Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
        ws.Cells(r + 1, "C").Value = "2025/4"
        
    Case "2025/1-2025/6"
        ws.Cells(r, "C").Value = "2025/1-2025/3"
        ws.Rows(r + 1).Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
        ws.Cells(r + 1, "C").Value = "2025/4-2025/6"
    
    '──────── 1Q + 2 行 ────────
    Case "2025/1-2025/7"
        ws.Cells(r, "C").Value = "2025/1-2025/3"
        ws.Rows(r + 1 & ":" & r + 2).Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
        ws.Cells(r + 1, "C").Value = "2025/4-2025/6"
        ws.Cells(r + 2, "C").Value = "2025/7"
        
    Case "2025/1-2025/8"
        ws.Cells(r, "C").Value = "2025/1-2025/3"
        ws.Rows(r + 1 & ":" & r + 2).Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
        ws.Cells(r + 1, "C").Value = "2025/4-2025/6"
        ws.Cells(r + 2, "C").Value = "2025/7-2025/8"
        
    Case "2025/1-2025/9"
        ws.Cells(r, "C").Value = "2025/1-2025/3"
        ws.Rows(r + 1 & ":" & r + 2).Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
        ws.Cells(r + 1, "C").Value = "2025/4-2025/6"
        ws.Cells(r + 2, "C").Value = "2025/7-2025/9"
    
    '──────── 1Q + 3 行 ────────
    Case "2025/1-2025/10"
        ws.Cells(r, "C").Value = "2025/1-2025/3"
        ws.Rows(r + 1 & ":" & r + 3).Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
        ws.Cells(r + 1, "C").Value = "2025/4-2025/6"
        ws.Cells(r + 2, "C").Value = "2025/7-2025/9"
        ws.Cells(r + 3, "C").Value = "2025/10"
        
    Case "2025/1-2025/11"
        ws.Cells(r, "C").Value = "2025/1-2025/3"
        ws.Rows(r + 1 & ":" & r + 3).Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
        ws.Cells(r + 1, "C").Value = "2025/4-2025/6"
        ws.Cells(r + 2, "C").Value = "2025/7-2025/9"
        ws.Cells(r + 3, "C").Value = "2025/10-2025/11"
        
    Case "2025/1-2025/12"
        ws.Cells(r, "C").Value = "2025/1-2025/3"
        ws.Rows(r + 1 & ":" & r + 3).Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
        ws.Cells(r + 1, "C").Value = "2025/4-2025/6"
        ws.Cells(r + 2, "C").Value = "2025/7-2025/9"
        ws.Cells(r + 3, "C").Value = "2025/10-2025/12"
        
    '──────── それ以外は無視 ────────
    End Select
Next r

Application.ScreenUpdating = True

End Sub

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?