Macros/Calc/ba020
Appearance
TDF LibreOffice Document Liberation Project Community Blogs Weblate Nextcloud Redmine Ask LibreOffice Donate
概要
このページでは、名前付き数式での相対参照を作成するための LibreOffice Basic マクロを提供します。これは、7.0 Calc ガイドの第13章 ("Calc as a Database"(データベースとしてのCalc))から抜粋した例です。
説明
名前付き範囲で絶対アドレス以外のセルアドレスが使用されている場合、これらのアドレスは、addNewByName メソッドの 3番目の引数である Position' で定義される範囲のベースアドレスから相対的に参照されます。この動作は、次のコードで説明されています。マクロ AddNamedFunction が、名前付き数式 AddLeft を作成します。この式は、C3 をベースアドレスとする数式 A3+B3 を参照します。相対参照が使用されているため、AddLeftは、数式 "=AddLeft" を含む任意のセルのすぐ左にある 2つのセルの値を合計します。たとえば、AddLeftがセル E5 で参照されている場合、C5 と D5 の値を合計します(リンクされたスプレッドシートを参照)。
Code
Sub AddNamedFunction()
Dim oSheet '指定するセル範囲を含むシート
Dim oCellAddress '相対参照のアドレス
Dim oRanges '名前付き範囲のプロパティ
Dim oRange '一つのセル範囲
Dim sName As String '作成する計算式の名前
sName = "AddLeft"
oRanges = ThisComponent.NamedRanges
If NOT oRanges.hasByName(sName) Then
oSheet = ThisComponent.getSheets().getByIndex(0)
oRange = oSheet.getCellRangeByName("C3")
oCellAddress = oRange.getCellAddress()
oRanges.addNewByName(sName, "A3+B3", oCellAddress, 0)
End If
End Sub
このCalc ファイル には上記の LibreOffice Basic コードが含まれています。