ReoGrid ReoGrid Web

名前付き範囲

v1.4.0 から、セルや範囲に定義済み名を割り当て、数式で参照できます — =SUM(Sheet1!B2:B13) の代わりに =SUM(Sales)。名前はワークブック全体、または単一シートにスコープできます。

Note: 名前の定義は Pro 機能です。名前の読み取り(getNamegetNames)と xlsx からのインポートは Lite で動作するため、Pro で作成した — またはファイルから読み取った — 名前は無償版でも数式で解決されます。

名前の定義

名前は単一のワークシートではなくインスタンス(ワークブック)上に存在します。名前とアドレスを渡します。スコープとコメントは任意です。

import { createReogrid } from '@reogrid/pro'

const grid = createReogrid({ workspace: '#app' })

// ワークブックスコープ(既定)— 全シートから参照可能
grid.defineName('Sales', 'Sheet1!B2:B13')
grid.defineName('Tax', 'Sheet1!$F$1', 'workbook', '消費税率')

// シートスコープ — そのシート上で同名のワークブック名を隠す
grid.defineName('Region', 'A1:A20', 'Summary')

defineName(name, address, scope?, comment?)address はセル/範囲参照(Sheet1!A1:B10A1'My Sheet'!$C$3)です。scope'workbook'(既定)またはシート名です。

名前の管理

grid.getName('Sales')            // 'Sheet1!$B$2:$B$13' — 絶対アドレス、または undefined
grid.getNames()                  // ワークブック全体の DefinedNameInfo[]
grid.getNames('Summary')         // 指定スコープのみ
grid.removeName('Tax')           // 削除できたら true

DefinedNameInfo{ name, scope, address, comment? } です。名前の対象が破棄されている場合、address#REF! になります。

ワークブックスコープとシートスコープ

スコープ指定方法可視範囲
ワークブック'workbook'(既定)全シートの数式で使用可能。
シートシート名、例 'Summary'そのシートで使用可能。そこでは同名のワークブック名を隠す

シートスコープの名前は、そのシート上の数式評価時に同名のワークブック名より優先されます。

数式での使用

範囲や値が期待される箇所であればどこでも名前を参照できます。

grid.defineName('Sales', 'Sheet1!B2:B13')
grid.defineName('Tax', 'Sheet1!$F$1')

grid.worksheet.cell('E1').value = '=SUM(Sales)'   // 範囲名
grid.worksheet.cell('E2').value = '=E1*Tax'       // 単一セル名をスカラーとして
grid.worksheet.cell('E3').value = '=AVERAGE(Sales)'

#REF! の挙動

定義済み名は対象を追跡します。名前が指す行・列が削除されると、名前は #REF! に解決され、それを使う数式も #REF! と評価されます — 直接の壊れた参照と同じ挙動です。名前を再定義する(または対象を復元する)と修正されます。

grid.defineName('Sales', 'Sheet1!B2:B20') // 新しい範囲を指す

xlsx への往復

名前は <definedNames> にシリアライズ・読み込みされるため、=SUM(Sales) は Excel への保存と復元を通じて保持されます。ReoGrid JSON でも往復します。ワークブックをインポートすると定義済み名も取り込まれ、Lite でも数式で解決されます。

関連項目

ニュースレター

開発の最新情報をお届けします

新しいリリース・機能追加・お知らせをいち早く受け取るには、
メーリングリストにご登録ください。