2010-03-04 2 views
0

다른 셀에 두 개의 사각형과 텍스트가 포함 된 Excel 시트가 있습니다. 사용자가 사각형의 텍스트 만 편집 할 수있게해야합니다. 객체의 크기를 변경할 수 없어야합니다. 사각형에 잠금을 적용하면 개체와 텍스트가 잠 깁니다. 나는 이것을 어떻게 달성 할 수 있는지 아는 사람 있습니까?Excel에서 VBA - 사각형 크기 조정을 잠글 수있는 방법

답변

0

두 개의 개체를 만들어야합니다. 하나는 잠긴 사각형이고 다른 하나는 잠겨 있지 않은 텍스트 상자입니까? 이것은 정말로 단순하지만 가능한 대답입니다.

또 다른 아이디어는 직사각형을 설정 셀과 같게하고 셀에 텍스트를 입력하게하고 사각형이 잠겨 있어도 전송할 것입니다.

0

Excel에서 도형의 이벤트를 수용 할 수 없다는 것을 알고있는만큼 모양 크기의 변경을 감지하고 모양의 크기를 조정하는 간단한 방법은 없습니다.

해결 방법을 사용하여 원하는 것을 에뮬레이트 할 수 있습니다.

스프레드 시트에 '직사각형 1'및 '직사각형 2'라는 두 개의 직사각형이 있다고 상상해보십시오. 사용자가 주어진 상자에서 텍스트 업데이트를 완료하면 스프레드 시트를 클릭하여 도형의 '편집'모드에서 벗어나야합니다. Workbook_SheetSelectionChange 이벤트를 사용하여이를 감지 할 수 있습니다.

Const Rect1Height As Integer = 50 
Const Rect1Width As Integer = 200 

Const Rect2Height As Integer = 50 
Const Rect2Width As Integer = 200 

Sub SetRectangleSize() 

Dim Rect1 As Shape 
Dim Rect2 As Shape 

Set Rect1 = ActiveSheet.Shapes("Rectangle 1") 
Set Rect2 = ActiveSheet.Shapes("Rectangle 2") 

Rect1.Height = Rect1Height 
Rect1.Width = Rect1Width 
Rect2.Height = Rect1Height 
Rect2.Width = Rect1Width 

End Sub 

이제 당신이해야 할 모든 통합 문서 수준 이벤트에서이 하위를 호출하는 것입니다 : :

다음 모듈은 상수로 사각형의 크기를 설정하고 그에 따라 사각형의 크기를 조정합니다 수 있습니다

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range) 
SetRectangleSize 
End Sub 

사용자들이 스프레드 시트와 이벤트를 다시 클릭합니다 사각형 중 하나의 텍스트를 업데이트 때마다 일정한 높이와 사용자가 정의한 폭 매개 변수에 따라 크기가되는 직사각형의 결과로 발생합니다.

관련 문제