2017-11-25 1 views
-1

.xlsx 파일로 데이터를 내보내는 VBScript를 작성했습니다. 드롭 다운 컨트롤은 데이터를 필터링해야합니다. 다음 코드는 내 추가 방법을 보여줍니다.VBScript : VBA (Excel)에서 Shape 속성 사용

sub AddDropDownElement 
    FirstSheet.DropDowns.Add(0, 0, 100, 15).Name = "SheetFilter" 

    with FirstSheet.Shapes("SheetFilter") 
     .IncrementLeft 20.4 
     .IncrementTop 34.2 

     .Placement = xlFreeFloating 
     .PrintObject = False 
     .ListFillRange = "" 
     .LinkedCell = "" 
     .DropDownLines = 12 
     .Display3DShading = False 
    End With 
end Sub 

FirstSheet는 "Excel.Application"워크 시트입니다.

증가 방법을 실행하려면 완벽하게 작동합니다. 속성은 VBScript에서 알 수 없습니다.

답변

0

당신의 재산의 일부는 Shape 개체의 직접 회원은되지 않습니다 일부는 ControlFormat에 속하고 하나

Sub AddDropDownElement() 
    Const DD_NM = "SheetFilter" 

    FirstSheet.DropDowns.Add(0, 0, 100, 15).Name = DD_NM 

    With FirstSheet.Shapes(DD_NM) 
     .IncrementLeft 20.4 
     .IncrementTop 34.2 
     .Placement = xlFreeFloating 
     With .ControlFormat 
      .PrintObject = False 
      .ListFillRange = "" 
      .LinkedCell = "" 
      .DropDownLines = 12 
     End With 
    End With 
    FirstSheet.DropDowns(DD_NM).Display3DShading = True 

End Sub 

DropDown에 당신은, 예를 들어 잘되지만, 원칙적으로

+0

엑셀 2013 년 테스트 속성 "게재 위치"를 알 수 없습니다. – Sebastian

+0

Excel에 대한 참조를 추가 했습니까? 아니면 후기 바인딩을 사용하고 있습니까? 후기 바인딩 인 경우'xlFreeFloating'을 정의 했습니까? –

+0

오류 메시지가 잘못되었습니다. 당신이 말했듯이'xlFreeFloating'은 정의되지 않았습니다. – Sebastian