在工作中,我们有一个带有一些功能区按钮的加载项供我们使用。该加载项受密码保护,我们甚至无法看到这些功能区按钮正在调用的内容。因此,我无法知道在加载项中看到任何子例程或宏的任何名称。访问Excel功能区按钮和控件
我想知道是否有可能编写一些模仿点击按钮的东西?我需要一些可以与这些按钮交互的东西。我希望这是可能的,因为后来我还想编写一些可以点击其他程序上的网页和按钮的链接。
贺拉斯
在工作中,我们有一个带有一些功能区按钮的加载项供我们使用。该加载项受密码保护,我们甚至无法看到这些功能区按钮正在调用的内容。因此,我无法知道在加载项中看到任何子例程或宏的任何名称。访问Excel功能区按钮和控件
我想知道是否有可能编写一些模仿点击按钮的东西?我需要一些可以与这些按钮交互的东西。我希望这是可能的,因为后来我还想编写一些可以点击其他程序上的网页和按钮的链接。
贺拉斯
要使用的网页,你应该使用Selenium。
模拟鼠标点击从来不是一个很好的解决方案。如果界面发生变化,或者您尝试在不同分辨率的不同屏幕上使用它,哪里的一切都不是它曾经的地方?
无论如何,你可以使用VBA或者发送鼠标点击:
Public Declare Function SetCursorPos Lib "user32" (ByVal x As Long, ByVal y As Long) As Long
Public Declare Sub mouse_event Lib "user32" (ByVal dwFlags As Long, ByVal dx As Long, ByVal dy As Long, ByVal cButtons As Long, ByVal dwExtraInfo As Long)
Public Const MOUSEEVENTF_LEFTDOWN = &H2
Public Const MOUSEEVENTF_LEFTUP = &H4
Public Const MOUSEEVENTF_RIGHTDOWN As Long = &H8
Public Const MOUSEEVENTF_RIGHTUP As Long = &H10
Private Sub SingleClick()
SetCursorPos 100, 100 'x and y position
mouse_event MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0
mouse_event MOUSEEVENTF_LEFTUP, 0, 0, 0, 0
End Sub
或者你也可以使用外部程序像AutoIt。
但是,与插件的自动时间通话并要求可编程接口会更好。这将会更加强大。
是要求一个可编程的接口是什么我在平推 – user3759627
我希望有认识的文字和链接的方式,因此就知道了。 对于界面的东西,变化会变得非常缓慢,并且可能带有一些图像识别功能,我可以识别按钮或至少在界面发生变化时识别并终止代码 – user3759627
您可以尝试用十六进制编辑器替换传递给外接程序(如果此外接程序是使用Excel创建的,但看起来像是这样),所以只需要十六进制编辑器(例如Xvi32)。
好吧,让我们试试吧:
干杯(?:
http:// stackoverflow。com/questions/22663809/excel-vba-password-via-hex-editor – CommonSense
或者可能重命名为zip,查看在动作调用中放置的自定义功能区,然后可以引用插件并调用相同的调用。 –
在zip中只有我的xla文件,档案中没有bin文件。 – user3759627
是外接程序VBA –