シートの親ドキュメントオブジェクトを探すために下記のコードを作ってみましたが NotFound にしかなりません。
(ブログ記事: http://blog.livedoor.jp/addinbox/archives/51244102.html )
コード: 全て選択
Sub Main
Dim oActiveSheet As Object
Dim oComponents As Object
Dim oComponentsEnum As Object
Dim oComponent As Object
Dim i As Integer
oActiveSheet = ThisComponent.CurrentController.ActiveSheet
oComponents = StarDesktop.Components
oComponentsEnum = oComponents.createEnumeration()
While oComponentsEnum.hasMoreElements()
oComponent = oComponentsEnum.nextElement()
If (oComponent.ImplementationName = "ScModelObj") then
For i = 0 to (oComponent.Sheets.Count - 1)
If EqualUnoObjects(oActiveSheet, oComponent.Sheets(i)) Then
MsgBox "Parent is " & oComponent.Title
Exit Sub
End If
Next i
End If
Wend
MsgBox "Parent is Notfound"
End Sub
コード: 全て選択
Sub Main
Dim oDoc As Object
Dim oActiveSheet As Object
Dim oSheet1 As Object
Dim oSheet1a As Object
Dim oSheet1b As Object
Dim oSheet As Object
Dim oSheetsEnum As Object
Dim i As Integer
Dim j As Integer
oDoc = GetComponent("無題 1") '(注)
MsgBox "Doc : " & EqualUnoObjects(ThisComponent, oDoc) 'ThisComponent=[無題 1]
With ThisComponent
oActiveSheet = .CurrentController.ActiveSheet 'ActiveSheet=[Sheet1]
oSheet1 = .Sheets.getByName("Sheet1")
End With
MsgBox "Sheet : " & EqualUnoObjects(oActiveSheet, oSheet1)
j = -1
With ThisComponent
For i = 0 to (.Sheets.Count - 1)
If EqualUnoObjects(oSheet1, .Sheets(i)) Then
j = i
End If
Next i
End With
MsgBox "Sheet(n) : " & j
j = -1
i = -1
oSheetsEnum = ThisComponent.Sheets.createEnumeration()
While oSheetsEnum.hasMoreElements()
i = i + 1
oSheet = oSheetsEnum.nextElement()
If EqualUnoObjects(oSheet1, oSheet) Then
j = i
End If
WEnd
MsgBox "SheetEnum : " & j
With ThisComponent
oSheet1a = .Sheets.getByName("Sheet1")
oSheet1b = .Sheets.getByName("Sheet1")
End With
MsgBox "Sheet ByName : " & EqualUnoObjects(oSheet1a, oSheet1b)
With ThisComponent
oSheet1a = .Sheets.getByIndex(0)
oSheet1b = .Sheets.getByIndex(0)
End With
MsgBox "Sheet ByIndex : " & EqualUnoObjects(oSheet1a, oSheet1b)
End Sub
http://blog.livedoor.jp/addinbox/archives/51192547.html
シートオブジェクト同士を比較するケースはバグなのでしょうか?