GroupBox를 사용하는 설명에 명시된대로 각 단추 세트마다 각 세트가 서로 독립적으로 작동 할 수 있습니다. 아래 그림에서 GroupBox 이름을 제거하고 셀 경계선을 사용하여 groupboxes의 경계선을 정렬 한 다음 셀 경계선을 사용하여 그룹 상자를 거의 마스킹 했으므로 실제로 선택된 경계선을 제외하고는 말할 수 없습니다 (맨 위 대부분의 사람은) : 요청에
여기에 몇 가지 VBA 코드입니다. 이 코드를 실행하기 전에 행의 높이를 최소 20 포인트로 설정하는 것이 좋습니다. 그룹 박스의 최소 높이가 19.5이기 때문에 셀의 너비가 OptionButton의 너비를 결정하는 데 사용되므로 OptionButton의 텍스트에 충분한 여유가있는 너비를 사용해야합니다.
Sub Sample()
Dim Top As Variant, Left As Variant, Height As Variant, Width As Variant
Dim rngActiveRowA As Range, rngEndOfBox As Range
Dim lngActiveRow As Long, lngActiveColumn As Long
With Application
.ScreenUpdating = False
.Calculation = xlCalculationManual
.EnableEvents = False
End With
For lngActiveRow = 1 To 5
Set rngActiveRowA = Range("A" & lngActiveRow)
Set rngEndOfBox = Range("F" & lngActiveRow + 1)
Top = rngActiveRowA.Top
Left = rngActiveRowA.Left
Height = rngEndOfBox.Top - Top
Width = rngEndOfBox.Left - Left
ActiveSheet.GroupBoxes.Add(Left, Top, Width, Height).Caption = ""
For lngActiveColumn = 1 To 5
With ActiveSheet
Top = .Cells(lngActiveRow, lngActiveColumn).Top
Left = .Cells(lngActiveRow, lngActiveColumn).Left
Height = .Cells(lngActiveRow + 1, lngActiveColumn + 1).Top - Top
Width = .Cells(lngActiveRow + 1, lngActiveColumn + 1).Left - Left
End With
With ActiveSheet.OptionButtons.Add(Left, Top, Width, Height)
.Characters.Text = "OB" & lngActiveColumn
.LinkedCell = "$F$" & lngActiveRow
End With
Next lngActiveColumn
Next lngActiveRow
With Application
.ScreenUpdating = True
.Calculation = xlCalculationAutomatic
.EnableEvents = True
End With
End Sub
이 코드는 처음 5 개의 행에 대해 각 행의 첫 번째 5 열을 기준으로 그룹 상자를 만듭니다. 또한 해당 행의 F 셀에 링크 된 해당 영역의 각 셀 내에 옵션 단추가 채워집니다. 각 버튼의 이름을 OB + 열 번호로 바꿉니다.
이것은 작동하지 않습니다. 그러나 관련 옵션 단추에 대한 그룹 상자 컨트롤을 배치하면 원하는대로 작동합니다. – shahkalpesh
@shahkalpesh 상태에서 옵션 버튼의 각 독립 GROUP은 자신의 GroupBox 내에 있어야합니다 – user2140261