获取Windows 10中

时间:2015-12-05 09:43:18

标签: excel vba excel-vba

我想列出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.如果您有任何建议,请指定您的建议解决方案在哪个版本上进行测试或预期可以使用。

1 个答案:

答案 0 :(得分:0)

我还没有找到VBA的答案,但是在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