Excel 통합 문서에 도형을 삽입하는 것은 매우 쉽습니다. [삽입] 탭 - [일러스트레이션] 그룹 - [도형]에서, 원하는 도형을 선택하고 그려 넣으면 됩니다. 그런데 만들어야 할 도형이 많다면 어떻게 할까요?
VBA를 이용하면 많은 도형을 한꺼번에 삽입할 수 있습니다. 뿐만 아니라 도형을 셀이나 범위에 맞춰서 작성할 수도 있습니다.
※ 이 글은 아래 기사 내용을 토대로 작성되었습니다만, 필자의 개인 의견이나 추가 자료들이 다수 포함되어 있습니다.
- 원문: Use VBA to Insert Checkboxes in Excel
- URL: https://turbofuture.com/computers/use-vba-to-insert-checkboxes-in-excel
VBA 코드 작성
엑셀 워크시트 상태에서 Alt + F11을 눌러 Visual Basic Editor를 표시합니다. [삽입] - [모듈] 메뉴를 선택하여 모듈을 하나 삽입하고 다음 코드를 복/붙합니다.
Sub InsertShapes()
Dim rng As Range
Dim shapeType As Integer
Dim shape As Shape
Dim cell As Range
On Error Resume Next
Set rng = Application.InputBox("Select the range to insert shapes:", Type:=8)
On Error GoTo 0
If rng Is Nothing Then
MsgBox "No range selected. Macro canceled."
Exit Sub
End If
shapeType = InputBox("Choose a shape type:" & vbCrLf & _
"1 - Rectangle" & vbCrLf & _
"2 - Oval" & vbCrLf & _
"3 - Arrow" & vbCrLf & _
"4 - Star")
For Each cell In rng
' Calculate the center position of the cell
Dim centerX As Double
Dim centerY As Double
centerX = cell.Left + cell.Width / 2
centerY = cell.Top + cell.Height / 2
Dim shapeWidth As Double
Dim shapeHeight As Double
shapeWidth = cell.Width
shapeHeight = cell.Height
Select Case shapeType
Case 1
Set shape = ActiveSheet.Shapes.AddShape(msoShapeRectangle, centerX - shapeWidth / 2, centerY - shapeHeight / 2, shapeWidth, shapeHeight)
Case 2
Set shape = ActiveSheet.Shapes.AddShape(msoShapeOval, centerX - shapeWidth / 2, centerY - shapeHeight / 2, shapeWidth, shapeHeight)
Case 3
Set shape = ActiveSheet.Shapes.AddShape(msoShapeDownArrow, centerX - shapeWidth / 2, centerY - shapeHeight / 2, shapeWidth, shapeHeight)
Case 4
Set shape = ActiveSheet.Shapes.AddShape(msoShape5pointStar, centerX - shapeWidth / 2, centerY - shapeHeight / 2, shapeWidth, shapeHeight)
Case Else
MsgBox "Invalid shape type. Shape not added."
Exit Sub
End Select
Next cell
End Sub
VBA 코드 실행
작성한 VBA 코드를 실행하는 방법에는 여러 가지가 있습니다만, 이번에는 단축키를 이용해 보도록 하죠.
(1) 워크시트로 가서 Alt + F8을 누릅니다(Mac에서는 Fn + Option + F8).
(2) [매크로] 대화상자가 나타납니다. 실행할 매크로를 선택하고 [실행] 버튼을 누릅니다. 만약 여러 개의 엑셀 통합 문서가 열려 있고, 매크로가 많다면 [매크로 위치]를 [현재 통합 문서]로 지정하면 쉽게 선택할 수 있습니다.
(3) 도형을 삽입할 영역을 선택합니다(마우스로 드래그하여 선택). Ctrl 키를 이용하여 떨어져 있는 영역을 지정하는 것도 가능합니다.
(4) [확인] 버튼을 누르면 도형을 선택할 수 있는 대화상자(InputBox)가 나타납니다. 직사각형, 원, 화살표, 별 중 하나를 선택할 수 있습니다. 작성하려는 도형의 숫자를 입력합니다. 예를 들어 화살표를 입력하려면 3을 입력합니다.
(5) [확인] 버튼을 누르면 지정한 영역에 여러 개의 도형이 자동으로 삽입됩니다.
'VBA' 카테고리의 다른 글
Excel에서 매크로를 기록하는 방법 (2) | 2023.11.21 |
---|---|
Excel에서 각종 Mac 프로그램을 여는 VBA 코드 (0) | 2023.11.18 |
엑셀에서 개발자 탭을 빠르게 활성화하는 방법 (2) | 2023.11.04 |
체크리스트, 아직도 이렇게 만드시나요? (2) | 2023.10.30 |
Excel 백업 파일 자동으로 만들기 (58) | 2023.10.26 |