|
セルの範囲への名前定義について教えてください。
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
|
|