Visio에서 Excel 통합 문서를 포함하고 포함 된 데이터에 대한 읽기/쓰기 작업을 수행하고 있습니다. Excel 데이터로 붙여 넣기 특수를 수행하면 선택한/복사 된 데이터뿐만 아니라 전체 통합 문서가 포함 된 것처럼 보입니다.OLE 포함 Excel 개체에서 ActiveSheet를 얻는 방법
Visio 페이지에 포함 된 Excel 통합 문서 개체에 대한 참조를 가져올 수 있지만 Visio에서 어떤 시트가 활성화되어 있고 표시되는지 알 수 없습니다. 시트를 편집 할 때 활성 시트가 무엇인지 알 수있는 것 같습니다. 페이지에있을 때 통합 문서 개체는 ActiveSheet에 대해 Nothing을 반환하고 통합 문서에는 Windows가 없습니다. 창문이 없다는 것은 의미가 있지만 액티브 시트가 없다는 것은별로 의미가 없습니다.
'활성'시트가 Excel OLE 개체에 있는지 확인할 방법이 있습니까? 또는 모든 코드가 시트 1에 있다는 가정하에 작업을 작성해야합니까? 프로그래밍으로 임베디드 워크 북을 추가 할 것이기 때문에 각 책을 한 장으로 제한하는 것은 그리 큰 문제가 아니지만, 내가 바라는 부분이 없는지 확인하고 싶습니다. 원하는 것을 말해 줄 것입니다. .
페이지 엑셀 OLE 개체를 발견하고 통합 문서의 시트 1에서 셀 A1과 B1 설정하는 것이 코드 :
Dim CheckShp As Visio.Shape
Dim CheckObj As OLEObject
For Each CheckObj In ActivePage.OLEObjects
If CheckObj.ProgID Like "Excel.Sheet.*" Then
Dim Sheet As Excel.Worksheet
Dim Bk As Excel.Workbook
Set Bk = CheckObj.Object
Set Sheet = Bk.Worksheets(1)
Sheet.Cells(1, 1) = "HELLO"
Sheet.Cells(1, 2) = "WORLD"
End If
Next CheckObj
당신은 어쨌든'Activating' 또는'Editing' 포함 된 OLE 개체가없는 통합 문서 객체에 대한 참조를 얻을 수 있을까? –
지금까지 어떤 코드가 있습니까? – BruceWayne
통합 문서에 대한 참조를 쉽게 얻을 수 있지만 OLE 개체를 편집하지 않을 때 표시되는 워크 시트에 대한 참조를 얻고 싶습니다. OLE 개체를 편집하지 않는 한 ActiveSheet는 통합 문서 개체가 아닙니다. –