1
VBA를 사용하여 내 문서의 Excel 시트를 반복하는 스크립트를 작성하고 있습니다. 나는 그것들을 활성화시키고, 약간의 수정을하고 다음 것을 계속한다. 그런 다음 마지막 시트를 다시 비활성화하고 커서를 문서의 시작 부분으로 되돌리려합니다.VBA를 사용하여 OLEObject를 비활성화하면 Word 2007에서 리본이 깨집니다.
는 지금까지 다음과 같은 코드가 있습니다 :
Private Sub DeactivateOleObject(ByRef oOleFormat As OLEFormat)
On Error Resume Next
oOleFormat.ActivateAs "This.Class.Does.Not.Exist"
End Sub
Sub AutoOpen()
Dim lNumShapes As Long
Dim lShapeCnt As Long
Dim xlApp As Object
Dim wrdActDoc As Document
Set wrdActDoc = ActiveDocument
For lShapeCnt = 1 To wrdActDoc.InlineShapes.Count
If wrdActDoc.InlineShapes(lShapeCnt).Type = wdInlineShapeEmbeddedOLEObject Then
Dim oOleFormat As OLEFormat
Set oOleFormat = wrdActDoc.InlineShapes(lShapeCnt).OLEFormat
oOleFormat.Activate
DeactivateOleObject oOleFormat
End If
Next lShapeCnt
End Sub
내가
Gary McGill에서 비활성화 코드를 빌렸다. 그러나이 비활성화 방법으로 인해 Word 2007에서 리본이 손상됩니다.
wrdActDoc.Activate
을 추가하는 것은 OLEObject를 비활성화하는 대신 주 문서를 다시 활성화하는 것이 좋을 것이라고 생각하지만
wrdActDoc.Activate
을 추가하는 것으로는 보이지 않습니다.
리본을 깨지 않고 Excel 워크 시트를 비활성화 할 수 있습니까?