| 
    
     |  | セルの範囲への名前定義について教えてください。 
 Sample()で作成されるデータに
 グループ分けし名前を定義したいのですが、
 .CreateNames、.ApplyNames などの使い方がイマイチわかりません。
 Excelの基本機能であるのでしょうか?
 
 Name_Add()にて正常に動作するのですが
 基本機能、もしくはもっと簡単に定義する方法が
 あるのでしたら教えて頂きたいです。
 よろしくお願い致します。
 
 
 Option Explicit
 'サンプルデータの作成
 Sub Sample()
 Dim i As Long
 Dim r As Long
 Dim v As Variant
 
 With Application
 For i = .Names.Count To 1 Step -1
 .Names(i).Delete
 Next i
 End With
 r = 2
 With Worksheets(1)
 .Cells.ClearContents
 .Range("A1:B1").Value = Array("グループ名", "項目1")
 .Range("B1").AutoFill .Range("B1:G1")
 For Each v In Array("A", "B", "C", "D")
 Randomize
 i = Int(Rnd * 50)
 .Range(.Cells(r, 1), .Cells(r + i, 1)).Value = v
 r = r + i + 1
 Next v
 With .Range("B2:G2").Resize(r - 2)
 .Formula = "=""Data_"" & ROW()-1 & ""_"" & COLUMN()-1"
 .Value = .Value
 End With
 End With
 End Sub
 
 Sub Name_Add()
 Dim St As Long, En As Long
 Dim GrpName As String
 
 En = 2
 With Worksheets(1)
 Do While "" <> .Cells(En, 1).Value
 St = En
 GrpName = .Cells(St, 1).Value
 Do
 En = En + 1
 Loop While GrpName = .Cells(En, 1).Value
 .Range(.Cells(St, 1), .Cells(En - 1, 1)).Resize(, 7).Name = "Group_" & GrpName
 Loop
 End With
 End Sub
 
 
 |  |