Top > OOoBasic > Calc > activesheet

アクティブシート Edit

アクティブシートにアクセスしてみます。

アクティブシートの取得 Edit

現在のコントローラから ActiveSheet プロパティーまたは getActiveSheet メソッドを使用することでアクティブシートのオブジェクトが取得できます。

Sub get_activesheet()
Dim oActiveSheet As Object
  oActiveSheet = ThisComponent.CurrentController.ActiveSheet
  'oActiveSheet = ThisComponent.CurrentController.getActiveSheet()
  MsgBox oActiveSheet.getName()
End Sub

これでアクティブシートの名前が表示されます。

アクティブシートの設定 Edit

アクティブシートを取得するだけでなくアクティブなシートを設定してみます。 アクティブシートを取得する際の CurrentController の取得までは同じです。 ActiveSheet プロパティーまたは setActiveSheet メソッドで設定します。

次のコードでは Sheet1 をアクティブにします。

Sub activesheet_1
  oDoc = ThisComponent
  oController = oDoc.getCurrentController()
  oSheets = oDoc.getSheets()
  oController.setActiveSheet(oSheets.getByName("Sheet1"))
End Sub

その他 Edit

Sub set_activesheet()
  Dim oNonActiveSheet As Object, oActiveSheet As Object
  Dim oSheets As Object, oSheetEnumeration As Object
  Dim oCurrentController As Object
  Dim sNonActiveSheetName, sActiveSheetName As String
  oSheets = ThisComponent.Sheets
 
  ' creating sheet enumeration. 
  oSheetEnumeration = oSheets.createEnumeration()
  oCurrentController = ThisComponent.CurrentController
  oActiveSheet = oCurrentController.getActiveSheet()
  sActiveSheetName = oActiveSheet.getName()
 
  ' if sheets collection has sheet more than 
  If oSheets.getCount() > 1 Then
    sNonActiveSheetName = sActiveSheetName
    While sNonActiveSheetName = sActiveSheetName
      ' returning the sheetname
      sNonActiveSheetName = oSheetEnumeration.nextElement().getName()
    WEnd
 
    ' getting the nonActiveSheet's Object from sheetName
    ' and setting to activeSheet
    oCurrentController.ActiveSheet = oSheets.getByName( sNonActiveSheetName )
  End If
End Sub

上のコードを実行すると,アクティブでないシートの EnumerationAccess で最も順番が早いシートがアクティブになります。 これでアクティブシートを設定することができます。


Reload   New Lower page making Edit Freeze Diff Upload Copy Rename   Front page List of pages Search Recent changes Backup   Help   RSS of recent changes