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

我努力找出如何以编程方式启用“select对象”游标types。 我检查了对象浏览器,并期望find像Application.CursorTypeApplication.DrawingMode属性。

macroslogging器中没有select更改光标types,我必须search错误的术语,因为我无法在任何地方find关于此的信息。

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

其实,我从来不知道这个光标模式的正确名称,直到我检查工具提示写这个更新,也许这将有所帮助。

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

 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 

祝你好运!

这个链接有帮助吗?

这是一个简介:

在应用程序中,您有四个select:

  • xlDefault
  • xlWait
  • xlBeam
  • xlNorthwestArrow

你这样称呼它:

 Application.Cursor = xlDefault 

在forms上,你有更多的select。 看到更多的文章。

我不知道“绘图模式”是什么意思。 但是,如果要更改鼠标光标的外观,则您正在查找的属性是Application.Cursor

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

如果您想要显示其他游标,请查看本文 ,了解如何在Access中显示自定义游标。 由于它使用WinAPI,所以解决scheme应该在Excel中平等地工作。

编辑:

回应你的编辑:我不认为有可能做你想做的事情。 macroslogging器没有拿起它,因为没有VBA命令可以做到这一点。 取决于你试图通过切换到devise模式来实现的目标,可能还有其他方法。

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

如果您想让用户不要select或改变任何东西,但仍然显示数据,请查看ActiveSheet.ProtectActiveWorkbook.Protect ,可在“ 工具 – 保护”下find

如果要移动或调整工作簿中的某些控件的大小,可以通过更改控件的“ Left ,“ Top ,“ Height和“ Width属性以编程方式执行此操作,则无需切换到devise模式即可macros。

我对这个问题有点“迟到”,但这里是“他为什么要这样做”以及“他想做什么”的答案。

 '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”显示器上有一个命令button和两个checkbox。 通过打开“select对象”,我将光标input目标限制为这三个项目。 单元格不能被选中。

干杯,劳伦斯