Macros/Calc/ba022
Appearance
TDF LibreOffice Document Liberation Project Community Blogs Weblate Nextcloud Redmine Ask LibreOffice Donate
概要
このページでは、$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 コードが含まれています。.