SpreadJS製品ヘルプ
印刷範囲
機能 > 印刷の概要 > 印刷範囲

SpreadJSは、ユーザーが印刷範囲を設定するたびに「Print_Area」というカスタム名でワークシート内に印刷範囲を定義します。カスタム名「Print_Area」のメリットは以下の通りです。

名前の管理との操作

SpreadJSの名前の管理は、印刷範囲と同じ参照を持つ「Print_Area」カスタム名を追加します。名前ボックスのドロップダウンから「Print_Area」をアクセスしてワークシートで印刷範囲を選択することができます。

ユーザーが、「名前の管理」ダイアログで他のカスタム名と同様に「Print_Area」のカスタム名も手動で作成したり編集したりすることができます。カスタム名は、カルチャや大小文字で区別されるものではありません。

メモ:「Print_Area」カスタム名は、シートのスコープ内であり、シートの範囲を参照している限りに有効です。無効な場合、カスタム名のみとして考慮されます。

したがって、ユーザーは、印刷範囲に影響せずに、ワークブックのスコープでカスタム名「Print_Area」を追加できます。

「Print_Area」カスタム名で印刷範囲を設定した場合に、行列の追加・削除などの変更に応じて、印刷範囲を自動的に更新する場合は、印刷範囲を絶対参照($A$1:$E$10など)で設定します。相対参照で設定した場合は、行列を変更しても印刷範囲は更新されません。

印刷情報との操作

「Print_Area」カスタム名から取得した印刷範囲で次のPrintInfoクラスメソッドの値が設定されます:rowStart、rowEnd、columnStart及び columnEnd。

逆に、クラスメソッドはSpreadJSのワークシートに「Print_Area」カスタム名を設定します。印刷範囲をカスタム名「Print_Area」とPrintInfoメソッドのいずれかの方法で設定することをお勧めします。

次のサンプルコードは、「Print_Area」カスタム名がPrintInfoメソッドにどのように影響するかを示しています。

JavaScript
コードのコピー
// ワークブックとワークシートを構成します。
var spread = new GC.Spread.Sheets.Workbook("ss");
var sheet = spread.getActiveSheet();

var printInfo = sheet.printInfo();

// Print_AreaはPrintInfoに影響します。
sheet.addCustomName("Print_Area", "=$A$1:$B$5")
console.log(printInfo.rowStart())   // 出力: 0
console.log(printInfo.rowEnd())     // 出力: 4

sheet.removeCustomName("Print_Area", "")
console.log(printInfo.rowStart())   // 出力: -1
console.log(printInfo.rowEnd())     // 出力: -1      

次のサンプルコードは、、PrintInfoメソッドが「Print_Area」カスタム名にどのように影響するかを示しています。

JavaScript
コードのコピー
// PrintInfoはPrint_Areaに影響します。
printInfo.rowStart(1)
// シートのrowCountが20であると仮定します。
sheet.getCustomName("Print_Area")
// NameInfoインスタンスを返します。数式は「=2:20」です。
console.log(printInfo.rowStart())   // 出力: 1
console.log(printInfo.rowEnd())     // 出力: -1

printInfo.rowEnd(15)
sheet.getCustomName("Print_Area")
// NameInfoインスタンスを返します。数式は「=2:16」です。
console.log(printInfo.rowEnd())     // 出力: 15

次のサンプルコードは、「Print_Area」カスタム名とPrintInfoメソッドが相互にどのように影響するかを示しています。

JavaScript
コードのコピー
// Print_AreaとPrintInfoは相互に影響します。
sheet.addCustomName("Print_Area", "=$A$1:$B$5")
console.log(printInfo.rowStart())   // 出力: 0
console.log(printInfo.rowEnd())     // 出力: 4

printInfo.rowStart(1);
sheet.getCustomName("Print_Area")
// NameInfoインスタンスを返します。数式は「=A2:B5」です。

数式との操作

SpreadJSでは、数式でカスタム名「Print Area」を使用できます。本機能を使用することで、ワークシートで条件付きステートメントを利用して、動的に印刷範囲を作成することができます。

例えば、「=IFERROR(ROWS(Print_Area),"none")」の数式を挿入して印刷する行数を表示できます。印刷範囲が存在しない場合は、「none」を表示します。

次のサンプルコードで示すように、セルに値が挿入されているかどうかに応じて、印刷範囲を自動的に更新することもできます。

JavaScript
コードのコピー
// ワークブックとワークシートを構成します。
var spread = new GC.Spread.Sheets.Workbook("ss");
var sheet = spread.getActiveSheet();

var printInfo = sheet.printInfo();

// 条件付きステートメントを含む数式。
sheet.addCustomName("Print_Area", "=IF(Sheet1!$A$1,Sheet1!$B$1:$C$5,Sheet1!$D$5:$F$8)")
// A1が真値であると仮定します。
console.log(printInfo.rowStart())
// 出力: 0
console.log(printInfo.rowEnd())
// 出力: 4

printInfo.rowStart(1);
sheet.getCustomName("Print_Area")
// NameInfoインスタンスを返します。数式は「=$B$2:$C$5」です。