1
다소 VBA 초보자가 여기 있습니다.Excel VBA : 워크 시트의 현재 셰이프를 모두 ShapeRange에 추가하는 방법은 무엇입니까?
그것은 나에게 분명 방법 ShapeRange
사용하여 개별 또는 여러 Shape
객체를 생성합니다 :
Dim sht As Worksheet
Set sht = MySht
'
'*Add some shapes*
'
Dim shprng As ShapeRange
Set shprng = sht.Shapes.Range(Array(1,2,3))
shprng
에 워크 시트에 현재 존재하는 형태의 ALL을 추가 할 수있는 방법이 있나요? 즉, Shapes
개체에서 ShapeRange
을 반환하는 방법이 있습니까? 다음과 같은 내용 :
Set shprng = sht.Shapes.Range.SelectAll '<--- Does not work: Type Mismatch
Set shprng = sht.Shapes '<--- Same error
Set shprng = sht.Shapes.Range '<--- Error: Argument not optional
감사합니다.
감사합니다. 제가하려는 일을 수행합니다. 'Shapes' 컬렉션 객체가 활성화 된 객체 벡터인지 여부를 알고 있습니까? 내가 의미하는 바는'sht.Shapes.Count = 5'라고하고'sht.Shapes (2) .Delete'라고했습니다. 'shapes.Shapes.Count'는 이제 4와 같고,'Shapes (3)'과'Shapes (4)'는 이제 2,3이됩니까? –
예, 설명대로 셰이프 개체가 자동으로 업데이트됩니다. – Tmdean
사이드 노트 : 코드가 실패 할 경우 두 개의 셰이프가 같은 이름을 가질 수 있습니다. 이것을 shprng에 추가하면됩니다 : shprng.select : sht.Shapes (i) .select replace : = false : set shprng = selection.shaperange'. activesheet가 모양이있는 시트 인 경우 작동합니다. –