Excel에서 지정된 셀 값에 따라 도형 크기를 자동으로 변경하는 방법은 무엇입니까?
지정된 셀의 값에 따라 도형 크기를 자동으로 변경하려는 경우 이 문서가 도움이 될 수 있습니다.
VBA 코드를 사용하여 지정된 셀 값에 따라 도형 크기 자동 변경
VBA 코드를 사용하여 지정된 셀 값에 따라 도형 크기 자동 변경
다음 VBA 코드는 현재 워크시트에서 지정된 셀 값에 따라 특정 도형 크기를 변경하는 데 도움이 됩니다. 아래 단계를 따르세요.
1. 크기를 변경해야 하는 도형이 있는 시트 탭을 마우스 오른쪽 버튼으로 클릭한 다음, 마우스 오른쪽 버튼 메뉴에서 코드 보기(View Code)를 클릭합니다.
2. Microsoft Visual Basic for Applications 창에서 다음 VBA 코드를 복사하여 코드(Code) 창에 붙여넣습니다.
VBA 코드: Excel에서 지정된 셀 값에 따라 도형 크기 자동 변경
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Target.Row = 2 And Target.Column = 1 Then
Call SizeCircle("Oval 2", Val(Target.Value))
End If
End Sub
Sub SizeCircle(Name As String, Diameter)
Dim xCenterX As Single
Dim xCenterY As Single
Dim xCircle As Shape
Dim xDiameter As Single
On Error GoTo ExitSub
xDiameter = Diameter
If xDiameter > 10 Then xDiameter = 10
If xDiameter < 1 Then xDiameter = 1
Set xCircle = ActiveSheet.Shapes(Name)
With xCircle
xCenterX = .Left + (.Width / 2)
xCenterY = .Top + (.Height / 2)
.Width = Application.CentimetersToPoints(xDiameter)
.Height = Application.CentimetersToPoints(xDiameter)
.Left = xCenterX - (.Width / 2)
.Top = xCenterY - (.Height / 2)
End With
ExitSub:
End Sub
참고: 코드에서 “Oval 2”는 크기를 변경할 도형 이름입니다. 그리고 행 = 2, 열 = 1은 도형 “Oval 2”의 크기가 A2 셀의 값에 따라 변경됨을 의미합니다. 필요에 따라 이를 변경하세요.
다양한 셀 값에 따라 여러 도형의 크기를 자동으로 조정하려면 아래 VBA 코드를 적용하세요.
VBA 코드: Excel에서 다양한 지정된 셀 값에 따라 여러 도형 크기 자동 조정
Private Sub Worksheet_Change(ByVal Target As Range)
Dim xAddress As String
On Error Resume Next
If Target.CountLarge = 1 Then
xAddress = Target.Address(0, 0)
If xAddress = "A1" Then
Call SizeCircle("Oval 1", Val(Target.Value))
ElseIf xAddress = "A2" Then
Call SizeCircle("Smiley Face 3", Val(Target.Value))
ElseIf xAddress = "A3" Then
Call SizeCircle("Heart 2", Val(Target.Value))
End If
End If
End Sub
Sub SizeCircle(Name As String, Diameter)
Dim xCenterX As Single
Dim xCenterY As Single
Dim xCircle As Shape
Dim xDiameter As Single
On Error GoTo ExitSub
xDiameter = Diameter
If xDiameter > 10 Then xDiameter = 10
If xDiameter < 1 Then xDiameter = 1
Set xCircle = ActiveSheet.Shapes(Name)
With xCircle
xCenterX = .Left + (.Width / 2)
xCenterY = .Top + (.Height / 2)
.Width = Application.CentimetersToPoints(xDiameter)
.Height = Application.CentimetersToPoints(xDiameter)
.Left = xCenterX - (.Width / 2)
.Top = xCenterY - (.Height / 2)
End With
ExitSub:
End Sub
참고:
3. Alt + Q 키를 동시에 눌러 Microsoft Visual Basic for Applications 창을 닫습니다.
이제부터 A2 셀의 값을 변경하면 Oval 2 도형의 크기가 자동으로 변경됩니다. 스크린샷 참조:
또는 A1, A2 및 A3 셀의 값을 변경하여 해당 도형인 “Oval 1”, “Smiley Face 3” 및 “Heart 3”의 크기를 자동으로 조정합니다. 스크린샷 참조:
참고: 셀 값이 10보다 클 경우 도형 크기는 더 이상 변경되지 않습니다.
현재 Excel 워크북의 모든 도형 나열 및 내보내기:
Kutools for Excel의 차트 내보내기(Export Graphics) 유틸리티를 사용하면 현재 워크북의 모든 도형을 빠르게 나열하고, 아래 스크린샷처럼 특정 폴더에 한 번에 모두 내보낼 수 있습니다. 지금 다운로드하여 무료로 사용해 보세요! (30-day free trail)
관련 문서:
- Excel에서 특정 도형에 마우스 오버 팁을 추가하는 방법은 무엇입니까?
- Excel에서 투명한 배경색으로 도형을 채우는 방법은 무엇입니까?
- Excel에서 지정된 셀 값에 따라 특정 도형을 숨기거나 표시하는 방법은 무엇입니까?
최고의 오피스 생산성 도구
? | Kutools AI Aide: 지능형 실행, 코드 생성, 사용자 정의 수식 작성, 데이터 분석 및 차트 생성, Kutools 함수 호출을 기반으로 데이터 분석 혁신… |
인기 기능: 중복 찾기, 강조 또는 식별 | 빈 행 삭제 | 데이터 손실 없이 열 또는 셀 결합 | 수식 없이 반올림 ... | |
슈퍼 LOOKUP: 다중 조건 VLookup | 다중 값 VLookup | 다중 시트 조회 | 퍼지 매치 .... | |
고급 드롭다운 목록: 빠르게 드롭다운 목록 만들기 | 종속 드롭다운 목록 | 다중 선택 드롭다운 목록 .... | |
열 관리자: 특정 개수의 열 추가 | 열 이동 | 숨겨진 열의 가시성 상태 전환 | 범위 및 열 비교 ... | |
주요 기능: 그리드 포커스 | 디자인 보기 | 향상된 수식 표시줄 | 통합 문서 및 시트 관리자 | 자동 텍스트 라이브러리 (Auto Text) | 날짜 선택기 | 데이터 병합 | 셀 암호화/해독 | 목록으로 이메일 보내기 | 슈퍼 필터 | 특수 필터 (굵은 글꼴/이탤릭체/취소선 필터링...) ... | |
최고의 15가지 도구 모음: 12개의 텍스트 도구 (텍스트 추가, 특정 문자 삭제, ...) | 50+ 차트 유형 (간트 차트, ...) | 40+ 실용적인 수식 (생일을 기반으로 나이 계산, ...) | 19개 삽입 도구 (QR 코드 삽입, 경로에서 그림 삽입, ...) | 12개 변환 도구 (단어로 변환하기, 통화 변환, ...) | 7개 병합 및 분할 도구 (고급 행 병합, 셀 분할, ...) | ... 그리고 더 많은 기능들 |
Kutools for Excel로 엑셀 스킬을 강화하고 지금까지 경험하지 못한 효율성을 체험하세요. Kutools for Excel은 생산성을 향상시키고 시간을 절약할 수 있는 300개 이상의 고급 기능을 제공합니다. 가장 필요한 기능을 얻으려면 여기를 클릭하세요...
Office Tab은 탭 인터페이스를 Office에 제공하여 작업을 훨씬 쉽게 만듭니다.
- Word, Excel, PowerPoint에서 탭 편집 및 읽기를 활성화하세요.
- 새 창 대신 동일한 창의 새 탭에서 여러 문서를 열고 생성하세요.
- 생산성을 50% 향상시키고 매일 수백 번의 마우스 클릭을 줄입니다!