以编程方式在Excel中设置“选择对象”光标

时间:2009-05-15 09:37:26

标签: excel vba excel-vba cursor

我很难找到如何以编程方式启用“选择对象”游标类型。我检查了对象浏览器,希望找到Application.CursorTypeApplication.DrawingMode等属性。

在宏录制器中没有选择更改光标类型,我必须搜索错误的术语,因为我无法在任何地方找到相关信息。

编辑:我应该说清楚我不是在讨论可以通过Application.Cursor设置的光标外观。相反,我想通过单击绘图工具栏上的“选择对象”图标将光标设置为可以通过GUI设置的相同模式。这是仅允许选择形状并忽略单元格,文本和公式栏的光标。

实际上,在我检查工具提示以编写此更新之前,我从来不知道此光标模式的正确名称,这可能会有所帮助。

4 个答案:

答案 0 :(得分:2)

我不太理解您为什么要这样做,但您可以通过执行内置的CommandBar控件以编程方式切换“选择对象”绘图模式:

Call CommandBars("Drawing").Controls("Select Objects").Execute

您可以通过检查其状态来确定当前模式:

If CommandBars("Drawing").Controls("Select Objects").State Then
  Call Debug.Print("Select Object mode is on")
End If
祝你好运!

答案 1 :(得分:0)

link会有帮助吗?

这是一个概要:

在应用程序中,您有四种选择:

  • xlDefault
  • xlWait
  • xlBeam
  • xlNorthwestArrow

你称之为:

Application.Cursor = xlDefault

在表单中,您有更多选择。请参阅文章了解更多信息。

答案 2 :(得分:0)

我不知道你对'绘画模式'的意思。但是,如果要更改鼠标光标的外观,则要查找的属性为Application.Cursor

您可以将其设置为四个预定义值之一:xlWait, xlNorthwestArrow, xlIBeamxlDefault

如果要显示其他光标,请查看如何在Access中显示自定义光标this article。由于它使用WinAPI,因此解决方案应该在Excel中同样有效。

修改:

回应你的编辑:我认为不可能做你想做的事。宏录制器不会拾取它,因为没有可以执行此操作的VBA命令。 根据您要通过切换到设计模式实现的目标,可能还有其他方法。

如果要阻止用户更改工作簿中的数据,可以使用Application.Visible属性隐藏整个Excel窗口。

如果您希望用户不要选择或更改任何内容,但仍然显示数据,请查看工具 - 保护下的ActiveSheet.ProtectActiveWorkbook.Protect

如果要移动或调整工作簿中的某些控件,可以通过更改LeftTopHeightWidth属性来以编程方式执行此操作。控制,您不需要切换到设计模式,以便从宏中执行此操作。

答案 3 :(得分:0)

我在聚会上迟到了很久。在这一个,但这里是为什么他想这样做的答案'以及他想做什么'。

'Turn ON 'Select Objects' option during initial display. While ON, cell input is prevented.
If CommandBars("Drawing").Controls("Select Objects").State = False Then
    CommandBars("Drawing").Controls("Select Objects").Execute
End If

我在一个简单的计时器应用程序中使用它,它有一个命令按钮和'ActiveSheet'上的两个复选框。显示。通过打开'选择对象',我将光标输入目标限制为这三个项目。无法选择单元格。

干杯, 劳伦斯