Jump to content

Macros/Calc/ba022

From The Document Foundation Wiki
This page is a translated version of the page Macros/Calc/ba022 and the translation is 100% complete.


概要

このページでは、$Sheet1.$A$1:$F$10 を参照する新しいデータベース範囲を作成する LibreOffice Basic マクロを提供します。これは、7.0 Calc ガイドの第13章 ("Calc as a Database"(データベースとしてのCalc))から抜粋した例です。

説明

このマクロでは、データベース範囲の作成、アクセス、および削除には、DatabaseRanges サービスが使用されます。このサービスには、NamedRanges サービスと同じメソッドが多数含まれていますが、addNewFromTitles メソッドは含まれていません。DatabaseRanges では、addNewByName メソッドの縮小版も使用されていますが、このメソッドには、相対ベース・アドレスおよび範囲タイプの引数が含まれていません。:

addNewByName(Name, Range)
現在のドキュメントに新しいデータベース範囲を追加します。.

このメソッドを使用して範囲を作成する例として、次のマクロは、MyName という名前のデータベース範囲を作成し、範囲の各列にオートフィルタを自動的に適用します。

Code

Sub AddNewDatabaseRange()
  Dim oRange 'DatabaseRange オブジェクト
  Dim oAddr  'データベース範囲のセルアドレスの範囲
  Dim oSheet '最初のシートであり、範囲を含んでいます
  Dim oDoc   '短い名前で ThisComponent を参照します

  oDoc = ThisComponent
  If NOT oDoc.DatabaseRanges.hasByName("MyName") Then
    oSheet = ThisComponent.getSheets().getByIndex(0)
    oRange = oSheet.getCellRangeByName("A1:F10")
    oAddr = oRange.getRangeAddress()
    oDoc.DatabaseRanges.addNewByName("MyName", oAddr)
  End If
  oRange = oDoc.DatabaseRanges.getByName("MyName")
  oRange.AutoFilter = True
End Sub

この Calc ファイル には、上記のLibreOffice Basic コードが含まれています。.