我正在尝试构建一个与Micrososft Excel交互的小应用程序(如果重要的话,2007年)。我的应用程序将启动并连接到Excel实例并在工作表上放置(以编程方式)一个或多个形状。
我需要禁止用户移动和/或调整这些形状的大小。我可以保护工作表,但我需要允许用户编辑单元格内容并调整行和/或列的大小。
有没有办法实现这个目标?
如果我不能禁止,至少可以检测到形状的移动/调整大小事件并在拖动结束时以编程方式将它们放回去吗?
答案 0 :(得分:2)
您实际上可以在不锁定单元格内容的情况下保护工作表,也不需要修改单元格属性以指示它们已解锁。
我之前没有使用过Interop,但这里是VBA中的代码。这允许修改内容,调整行和列,但不允许形状操作。我确定您或其他人可以轻松地将其翻译,因为它只是带参数的工作表的Protect方法。
Worksheet.Protect DrawingObjects:=True, Contents:=False, AllowFormattingColumns:=True, _
AllowFormattingRows:=True, AllowInsertingColumns:=True, AllowInsertingRows :=True