VBA를 사용하여 동적으로 셰이프를 만드는 워크 시트가 많이 보호되어 있습니다. 셰이프가 만들어지고 잠금 해제 된 다음 워크 시트가 다시 보호됩니다. 이 (다른 형상으로 제작 도구 중)에 사용자 도면 시트의 일부 모양을 만들 수 있도록보호 된 VBA 워크 시트의 셰이프에서 텍스트 편집 비활성화
Private Sub cmdTextBox_Click()
Dim Shp As Shape
Dim X, Y, Side As Single
X = ActiveSheet.Range("D12").Left
Y = ActiveSheet.Range("D12").Top
ActiveSheet.Unprotect
Set Shp = ActiveSheet.Shapes.AddTextbox(msoTextOrientationHorizontal, X, Y, 250, 30)
Shp.Name = "textbox_" & ActiveSheet.Shapes.Count
Set Shp = ActiveSheet.Shapes("textbox_" & ActiveSheet.Shapes.Count)
Shp.TextFrame.Characters.Font.Name = "Arial"
Shp.TextFrame.Characters.Font.Size = "16"
Shp.Fill.BackColor.RGB = RGB(255, 255, 0)
Shp.Fill.Transparency = 0.2
Shp.Line.Transparency = 1
Shp.TextFrame.HorizontalAlignment = xlHAlignCenter
Shp.TextFrame.VerticalAlignment = xlVAlignCenter
Shp.TextFrame.Characters.Font.ColorIndex = 1
Shp.TextFrame.Characters.Font.Bold = True
Shp.TextFrame.Characters.Text = "Right-click to modify format"
Shp.Locked = False
ActiveSheet.Protect
End Sub
: 다음 텍스트 상자 형상 대한 단편이다. 내 문제는 보호 된 통합 문서 (특히 대화 상자에서 데이터를 배치/입력 할 수 있도록 사용자를 제한하려는 경우)는 모든 유형의 모양의 "텍스트 편집"옵션을 사용할 수 없게한다는 것입니다. I 중 하나
A)는 잠금 해제 모양 또는 ... 모양이 (선정 된 각 모양은 이름 접 두부 등으로 만든 것을 감지)() 선호
B의 "텍스트 편집"옵션을 사용하려면 어떻게 시트를 보호 해제하여 "텍스트 편집"옵션을 활성화 한 다음 선택 취소 또는 다른 항목 선택시 다시 보호 할시기를 알기 위해 쉽게 .name 식별을 위해 rect_ 또는 circle_를 사용하십시오. '개체 편집'과 시트를 보호 (약간 덜으로 바람직) 매크로 기록 된 qick에서 가져온
모양이 완전히 잠금 해제되어 있고 시트에서 직접 편집 할 수있는 유일한 개체입니다. 그것들은 크기를 재조정하고 형식을 지정하고 옮길 수 있어야합니다. 그들이 필요로하는 유일한 일은 textarea 속성을 직접 편집하는 것입니다. 대화 상자 창에서이 작업을 수행 할 수는 있지만 사용자가 모양을 마우스 오른쪽 단추로 클릭하고 텍스트 편집 옵션을 사용하는 것을 선호합니다. –