2011-08-23 2 views
0

pywin32를 사용하여 MS Excel에서 TextBox의 이름을 얻으 려 노력하고 있습니다. 매크로 기록을 시도했지만 다음 팁을 얻었지만 VBA에서 Python으로 변환 할 수는 없습니다. 아래의 샘플에서는 텍스트 상자를 선택하고 이름을 변경합니다. 이름으로 이름을 참조 할 수 있어야하며 가까운 날에이 사실을 알 수 있습니다.Python win32com - 이름으로 TextBox를 호출 하시겠습니까?

ActiveSheet.Shapes.Range(Array("TextBox 2")).Select 
Selection.ShapeRange.Name = "TextBox 3" 

이것은 내가 지금까지 파이썬에서 가지고있는 것입니다.

import win32com.client as win32 
excel = win32.gencache.EnsureDispatch('Excel.Application') 
wb = excel.Workbooks.Open("C:\\users\\khillstr\\Testing\\Scripts\\Book1.xlsx") 
excel.Visible = True 

ws = wb.Worksheets 

for w in ws: 
    print w.Name 
    w.Activate 
    canvas = w.Shapes 
    for shp in canvas: 
     if shp.TextFrame.Characters: 
      print shp.TextFrame2.TextRange 
+0

비슷한 문제가 있습니다. Excel의 텍스트 상자에서 데이터를 읽어야하지만 Windows가 실행되지 않아 win32com 라이브러리를 사용할 수 없다고 생각합니다. 누구든지 * NIX에서 작동 할 다른 솔루션을 알고 있습니까? – Kasapo

답변

0
for shp in canvas: 
    print shp.name 

이름 텍스트 상자 모양의 속성을 읽기/쓰기입니다. 해당 속성을 사용하여 이름을 가져 오거나 설정할 수 있습니다. Excel 2010에서 테스트되었습니다.

+0

시도 할 때 오류가 발생합니다. 개체에 '이름'속성이 없습니다. – KarlJr

+0

이름이 아닌 이름이기 때문입니다. 도움을 주셔서 다시 한 번 감사드립니다. 너무 쉽습니다. – KarlJr

관련 문제