我想列出Excel Chart对象的所有属性,我找到了一个解决方案的问题: Get list of all properties for an object 但似乎这个解决方案在Windows 10上不起作用(我认为它在Windows 7上不起作用)。 TypeLib信息的DLL显然与Windows 10不兼容。
我使用的是Office 2003,2010和2013以及Windows 7和10.如果您有任何建议,请指定您的建议解决方案在哪个版本上进行测试或预期可以使用。
答案 0 :(得分:0)
我还没有找到VBA的答案,但是在AutoIt autoit中可以做这样的事情(要求你在对象浏览器中选择第一个属性(例如选择激活图表)宾语)。
#include <GuiListBox.au3>
_ReadItems()
Func _ReadItems()
const $delay=100
;;get handle to Object Browser window
$hwnd=WinWait("Microsoft Visual Basic - Book1 - [Object Browser]")
;;get handle to Object list box
Local $hLB = ControlGetHandle($hwnd,"","[CLASS:ListBox; INSTANCE:3]")
;;get handle to "property information box"
Local $hInfo= ControlGetHandle($hwnd,"","[CLASS:RichEdit20A; INSTANCE:1]")
Local $sMsg = ""
Local $text=""
;; loop through all items in list
Local $iCnt =_GUICtrlListBox_GetCount ( $hLB )
For $n = 0 To $iCnt - 1
sleep($delay)
;;copy text in information box
ControlFocus($hWnd, "",$hInfo)
sleep($delay)
send("^a")
sleep($delay)
send("^c")
sleep($delay)
$text= ClipGet()
;;move down in object list box
send("+{TAB}")
sleep($delay)
send("{DOWN}")
;;add information to result string
$sMsg &= $text & @CRLF
Next
;;put result on clipboard
ClipPut($sMsg)
EndFunc ;==>_ReadItems