0
我有一个使用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
这允许用户(除其他形状创建工具)上创建的图片的一些形状。我的问题是受保护的工作簿(我想限制用户特别是我的对话框允许他们放置/输入数据)禁用任何形状的“编辑文本”选项。如何任
A)使能“EDIT TEXT”选项解锁形状或...(优选的)
B)检测是否有形状已被选择(每个形状与名称前缀等生成rect_或circle_以方便识别名称),以便知道何时解除表单以启用“编辑文本”选项,然后在取消选择或选择其他内容时重新进行保护? (略少渴望)从录制宏qick采取
形状完全解锁,并且可以在表单上直接编辑唯一的对象。他们将被允许调整大小,格式化和移动。他们不能做的唯一事情就是直接编辑textarea属性。我可以用对话窗口来做,但我更愿意允许用户右键单击形状并使用“编辑文本”选项。 – 2014-09-05 10:25:23