*アウトライン [#z848cff4] アウトラインを取り扱います。 #contents **アウトラインの設定 [#fdcb0cc5] シートのアウトライン作成は group メソッドで行います。引数はアウトライン化する範囲のアドレス、アウトラインの向きです。向きは COLUMNS または ROWS のどちらかを指定します。 Sub outline_1 oDoc = ThisComponent oSheet = oDoc.getSheets().getByIndex(0) aAdd = CreateUnoStruct( _ "com.sun.star.table.CellRangeAddress" ) With aAdd .Sheet = 0 .StartColumn = 0 .EndColumn = 2 .StartRow = 0 .EndRow = 2 End With oSheet.group( aAdd, _ com.sun.star.table.TableOrientation.COLUMNS ) End Sub **アウトラインの解除 [#w23ac3ff] ungroup メソッドでアウトラインを解除できます。 oSheet.ungroup( aAdd, _ com.sun.star.table.TableOrientation.COLUMNS ) アウトラインを閉じて詳細を隠しているときに行うとセル範囲が非表示状態のままになります。展開した状態にしてから解除するか、非表示状態の範囲のセルから行または列を表示状態に戻してやる必要があります。 **アウトラインの全削除 [#x2714c24] clearOutline メソッドでシート上のすべてのアウトラインを解除できます。 oSheet.clearOutline() **表示と非表示 [#wffdaa43] アウトラインの表示を切り替えるには showDetail または showDetail メソッドを利用します。 Sub outline_6 oDoc = ThisComponent oSheet = oDoc.getSheets().getByIndex(0) aAdd = CreateUnoStruct( _ "com.sun.star.table.CellRangeAddress" ) With aAdd .Sheet = 0 .StartColumn = 0 .EndColumn = 2 .StartRow = 0 .EndRow = 1 End With oSheet.hideDetail( aAdd ) End Sub アドレス指定がアウトライン範囲とまったく同じでなくてもそのアウトライングループの表示が切り替わるようです。 **自動アウトライン [#kdef5f9d] oSheet.autoOutline( aAdd ) **レベル展開 [#r249a751] 複数のレベルのアウトラインが設定されているときに指定したレベルまで一度に展開します。 oSheet.showLevel( 1, aAdd ) レベルは 1 から始まります。 |