禁止或至less检测Excel形状的运动

我正在尝试构build一个小型应用程序,与Micrososft Excel进行交互(2007年,如果它重要)。 我的应用程序将启动并连接到Excel的一个实例,并在一张纸上放置(编程)一个或多个形状。

我需要禁止用户移动和/或调整这些形状的大小。 我可以保护工作表,但我需要允许用户编辑单元格内容并调整行和/或列的大小。

有没有办法做到这一点?

如果我不能禁止,至less我可以检测形状的移动/resize事件,并在拖动结束时以编程方式返回?

实际上,您可以保护工作表而不locking单元格内容,也不需要修改单元格属性以指示它们已解锁。

我之前没有使用过Interop,但是这里是VBA中的代码。 这允许内容被修改,行和列被调整,但是没有形状操纵。 我相信你或其他人可以很容易地翻译这个,因为它只是带有参数的工作表的保护方法。

Worksheet.Protect DrawingObjects:=True, Contents:=False, AllowFormattingColumns:=True, _ AllowFormattingRows:=True, AllowInsertingColumns:=True, AllowInsertingRows :=True