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