Jump to content

Macros/Calc/ba021

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


概要

このページでは、ラベルから名前付き範囲を作成する LibreOffice Basic マクロを提供します。これは、7.0 Calc ガイドの第13章 ("Calc as a Database"(データベースとしてのCalc))から抜粋した例です。

説明

名前を適用ダイアログ(メニューバーで シート ▸ 名前付き範囲または式 ▸ 作成 を選択してアクセス)を使用するほかに、マクロメソッド addNewFromTitles を使用して、ラベルから名前付き範囲を生成できます。

addNewFromTitles(Source, Border)
列または行のヘッダーから名前付き範囲を作成します。このメソッドには、次の2つの引数があります。
  • Source – 作成する名前付き範囲のセル範囲アドレス。
  • Border – 見出し(ヘッダーラベル)の位置を指定する列挙値です。この列挙には、次の表に示す4つの値のいずれかが含まれます。
com.sun.star.sheet.Border 列挙型の列挙子
列挙子 説明 (見出しの位置)
TOP 上部に見出しがある場合
BOTTOM 下部に見出しがある場合
RIGHT 右側に見出しがある場合
LEFT 左側に見出しがある場合


Tip:
複数の範囲枠から名前を生成するには、使用する各見出し行または見出し列に対して addNewFromTitles を呼び出す必要があります。


Tip:
複数の行または列に同じラベルを付けないでください。これらから生成された範囲も同様に同じ名前を共有し、Calcによって上書きされる可能性があります。


次のマクロは、セル範囲 A1:C20 の一番上の列の見出しを使用して 3つの名前付き範囲を作成します。作成された範囲は、名前の管理ダイアログに一覧表示されます。このダイアログにアクセスするには、メニューバーで シート ▸ 名前付き範囲または式 ▸ 管理 を選択するか、Ctrl+F3 を押します。

Code

Sub AddManyNamedRanges()
  Dim oSheet    '指定するセル範囲を含むシート
  Dim oAddress  '範囲のアドレス
  Dim oRanges   '名前付き範囲のプロパティ
  Dim oRange    '一つのセル範囲

  oRanges = ThisComponent.NamedRanges
  oSheet = ThisComponent.getSheets().getByIndex(0)

  oRange = oSheet.getCellRangeByName("A1:C20")
  oAddress = oRange.getRangeAddress()
  oRanges.addNewFromTitles(oAddress, com.sun.star.sheet.Border.TOP)
End Sub

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