Biz/Browser 5.0.0
|
|
|
|
|
||||||||
|
|
|
|
|
||||||||
|
|
|
||||||||||
|
|
|||||||||||
|
|
|
|
|
||||||||
|
|
|
||||||||||
|
|
|||||||||||
|
|
|
|
|
||||||||
|
|
|
||||||||||
|
|
|||||||||||
|
|
|
|
|
||||||||
|
|
SSpread |
||||||||||
|
|
|||||||||||
高機能スプレッドシートを表示するクラスです。

印刷の対象外です。
デフォルトプロパティはありません。ValueTypeの指定は無効です。
このクラスでは、基本の文字コードはUnicodeとして扱われ、文字列を扱うプロパティ、メソッドは、一部例外を除きUString型となります。
String型のオブジェクトを設定した場合は、UString型に自動的に変換されてから処理されます。
文字数や文字の位置指定を行う場合は、全角/半角などの区別なく文字単位となります。
通常のCRSの実行ではスクリプトで設定したプロパティは一連のスクリプトの実行が完了した後、GUI側に反映されます。
そのためプロパティの設定順序はGUIの反映には関係せず、また逆にプロパティを参照する場合もGUIの状態をリアルタイムには反映していません。
しかし、SSpreadクラスは従来VisualBasicで作成されたクライアント・サーバ型アプリケーションからの移植を強く意識して設計されており、他のクラスと異なる動作ルールで実行されます。
プロパティの設定、読み出しはリアルタイムにGUIにアクセスされ、メソッドを含め、記述の順序に従い実行されます。
(記述例)
Col = 2; Row = 3; BgColor = $BLUE; Col = 4; Row = 5; BgColor = $RED;
通常のCRSの実行では後から記述されたCol=4、Row=5、BgColor=$REDのみが有効ですが、SSpreadクラスではCol=2、Row=3、BgColor=$BLUEが記述どおり実行され、さらにCol=4、Row=5、BgColor=$REDが実行されます。
そのため、プロパティの記述順序が実行速度に直接影響します。
一般的に対象となるセルの数が増えるほど速度は低下しますので、スプレッドシート全体へ反映されるプロパティ・メソッドはなるべくセルデータの少ない段階で実行するほうが効率的です。
Col、Row、Col2、Row2プロパティは、スプレッドシートに対して各種の処理を行う前に、処理の対象となる範囲を設定するために使用します。
これらのプロパティを事前に設定する必要がある対象には、BackColor、ForeColor、FontBold、FontItalic、CellType、Text、Value、Lock、Formulaプロパティなどがあります。
処理対象 |
設定するプロパティ |
|---|---|
|
セル |
Col、Row |
|
列(1列) |
Col、Row(-1) |
|
列の範囲 |
Col、Col2 |
|
列ヘッダ(1列) |
Col、Row(0) |
|
列ヘッダ全体 |
Col(-1)、Row(0) |
|
行 |
Row、Col(-1) |
|
行の範囲 |
Row、Row2 |
|
行ヘッダ(1列) |
Col(0)、Row |
|
行ヘッダ全体 |
Col、Row(-1) |
|
セルブロック |
Col、Row、Col2、Row2、BlockMode($TRUE) |
|
スプレッドシート全体 |
Col(-1)、Row(-1) |
セルブロックを指定するためにCol2、Row2プロパティを有効にするには、BlockModeを$TRUEに設定します。
セルブロックへの設定後にBlockModeを$TRUEにしたままにすると、以降の処理で意図しない範囲に影響することがあるため、使用後は$FALSEに戻すことを推奨します。
異なる値が設定された複数のセルを指定して値を参照した場合は、原則として代表的な1つのセルの値が返ります。特定のセルの値を確実に取得するには、Colプロパティ、Rowプロパティでセルを明確に指定してから参照してください。
このクラスでは、標準の色定数($BLACK、$FF0000など)とは別に、任意の色が利用できます。
色情報は以下の形式の文字列で表します。
"#RRGGBB"
1文字目:#
2,3文字目(RR):赤色成分を表す16進数(00〜FF)
4,5文字目(GG):緑色成分を表す16進数(00〜FF)
6,7文字目(BB):青色成分を表す16進数(00〜FF)
(例)オレンジ色
"#FFA500"
色定数に定義されている色の場合、文字列形式を指定しても色定数が優先されます。
$STDを指定すると、標準の色が設定されます。
一部のプロパティで、対象となるデータのインデックス番号を指定して値を取得、設定するものがあります。(例:ColWidth、RowHeightプロパティなど)
/* 取得例 */ var w = ColWidth(5); var h = RowHeight(7); /* 設定例 */ ColWidth(5) = w + 10; RowHeight(7) = h + 10;
インデックス番号が、配列を表す [n](角括弧)ではなく、(n)(丸括弧)で囲まれている点に注意してください。
これらのプロパティの実体はメソッドであり、メソッドの引数としてインデックス番号を渡すことで、プロパティのように動作します。
(Biz/Desiger上ではメソッドとして表示されます)
本マニュアルでは、このような機能を持つプロパティを「インデックスプロパティ」と呼び、プロパティとして扱っています。
Biz/Browser特有の演算子である「参照演算子」は、代入式の右辺に変更があった場合に、変更後の値を自動的に左辺に代入します。
(例)
Width &= ^.Width - 10; Height &= ^.Height - 10;
しかし、このクラスのプロパティには、変更することで他のプロパティの値に影響を与えたり、設定順序によって動作が異なったりするプロパティが数多くあります。
このようなプロパティで参照演算子を使用した場合、代入先(左辺)の処理の対象や、参照先(右辺)の値が他のプロパティの状態によって異なる場合があるため、意図した結果を得ることは困難です。
プロパティ一覧の「&=」の列が「×」になっているプロパティが対象となります。
(代表的な例として、Col、Rowプロパティを事前に設定するプロパティが挙げられます。)
これらのプロパティは、参照演算子の左辺、右辺のどちらにも使用しないでください。
(使用できない例)
Col = 2; Row = 3; BackColor &= ^.Label1.BgColor; /* 左辺に指定する */ Col = 4; Row = 5; ^.Label1.BgColor = $RED; /* 参照演算子によって列4行5セルの背景色が変更されてしまう */ Col = 6; Row = 7; ^.Label2.BgColor &= BackColor; /* 右辺に指定する */ Col = 8; Row = 9; BackColor = $GREEN; /* 参照演算子によってLabel2の背景色が変更されてしまう */
なお、これらのプロパティはBiz/Designerのプロパティビューからは設定できないように除外されていますので、CRSプログラムで直接指定してください。
FontBold、FontFace、FontItalic、FontKind、FontName、FontSize、FontStrikethru、FontUnderlineの各プロパティを使用し、BlockModeを$TRUEにしてセルブロックへの設定の適用をする場合、個々のセルのフォント設定は破棄され、Col、Rowプロパティが指すセルを基準にフォントが再作成されます。
つまり、あるセルを「太字」にした状態で、そのセルを含むセルブロックに「斜体」を適用すると、「太字」が解除されます。
フォントの設定では、最初に大きな範囲から共通の設定を行い、個別の設定はその後で行ってください。
CellTypeプロパティで設定したセルのデータ型により、セルの値の取得、設定は以下のようになります。
セルのデータ型 |
データ/状態 |
Textプロパティ |
Valueプロパティ |
|---|---|---|---|
|
文字型 |
- |
文字列 |
文字列 |
|
ラベル型 |
- |
文字列 |
文字列 |
|
日付型 |
"2011/04/27" |
"2011/04/27" |
"20110427" |
|
時刻型 |
"11:25:03 pm" |
"11:25:03 pm" |
"232503" |
|
数値型 |
"10,000.00" |
"10,000.00" |
"10000.00" |
|
通貨型 |
"\10,000.00" |
"\10,000.00" |
"10000.00" |
|
パーセント型 |
"15%" |
"15%" |
"0.15" |
|
指数型 |
"2.22E+05" |
"2.22E+05" |
"222222" |
|
マスク型 |
"22-45-76" |
"22-45-76" |
"224576" |
|
コマンドボタン |
押されている |
"1" |
"1" |
|
押されていない |
"0" |
"0" |
|
|
設定しない |
空白文字列 |
"0" |
|
|
チェックボックス |
チェックされている |
"1" |
"1" |
|
チェックされていない |
"0" |
"0" |
|
|
灰色状態 |
"2" |
"2" |
|
|
設定しない |
空白文字列 |
"0" |
|
|
コンボボックス |
- |
選択された要素の文字列データ |
選択された要素のインデックス (未選択時は空白文字列) |
TypeNumberMin、TypeNumberMaxなどの値の範囲を指定するプロパティは、入力操作を制限することができますが、値が範囲内になることを保証するものではありません。入力操作によって不正な値が一時的に設定できたり、CRSスクリプトから不正な値を設定できることがあります。
入力操作により不正な値が設定されるとEditErrorイベントが発生します。値のチェックを確実に行いたいときはCRSスクリプトで制御してください。
Biz/Browserのイベントは、イベントキューに蓄積されたあと順次実行されます。したがって、イベントの発生タイミングや発生順序は、常に同じであるという保証はありません。
このクラスで発生するイベントでも、イベントハンドラ内で参照するプロパティの値が実行状況によって異なる場合があります。例えば、LeaveCellイベントはアクティブセルの移動によって発生しますが、OnLeaveCellイベントハンドラ内でActiveCol、ActiveRowプロパティを参照した場合に、移動前または移動後のどちらの値が取得できるかは不定です。
このクラスのイベントは、イベントハンドラの引数(Eventオブジェクト)の子オブジェクトとして関連する情報が渡されますので、必ずそれらの情報を使用してください。
Function OnLeaveCell(e) {
^.Label1.Value = ActiveCol; /* 不定 */
^.Label2.Value = ActiveRow; /* 不定 */
^.Label3.Value = e.Col; /* 移動前の列番号 */
^.Label4.Value = e.Row; /* 移動前の行番号 */
^.Label5.Value = e.NewCol; /* 移動後の列番号 */
^.Label6.Value = e.NewRow; /* 移動後の行番号 */
}
CellTypeプロパティや、名前が"Type"で始まるプロパティは、セルのデータ型に関する設定を行います。これらのプロパティは、セルのデータ型ごとに最後に設定した内容が記憶され、次回以降の同じデータ型のセルへの設定時にプロパティが継承されます。詳細については、CellTypeプロパティを参照してください。
スプレッドシートは、以下のキーで操作できます。
キー |
動作 |
|---|---|
|
方向キー |
アクティブセルを移動 Shiftキーで選択範囲を拡張 |
|
PageUp、PageDownキー |
アクティブセルをページ単位で上下に移動 Ctrlキーで左右に移動 |
|
Home、Endキー |
アクティブセルを行内の最初、最後のセルに移動 Ctrlキーで全体の最初、最後のセルに移動 |
|
Tabキー |
ProcessTabプロパティで設定する |
|
Spaceキー |
Ctrlキーで行を選択 Shiftキーで列を選択 Ctrl+Shiftキーで全選択 |
|
Enterキー |
EditEnterActionプロパティで設定する |
|
Escキー |
選択解除など |
|
Deleteキー |
ProcessDeleteプロパティで設定する |
AutoClipbordプロパティを$TRUEにすると、以下のキー操作も使用できます。
キー |
動作 |
|---|---|
|
Ctrl + 'C'キー、Ctrl+ Insertキー |
コピー |
|
Ctrl + 'X'キー、Shift + Deleteキー |
切り取り |
|
Ctrl + 'V'キー、Shift + Insertキー |
貼り付け |
上記のキーは、押下による親FormのKeyDownイベントが発生しません。同じForm上にあるButtonなどのAltKeyプロパティへの指定も無効になります。
それ以外のキーは、データの編集に使われなければ親Form のKeyDownイベントが発生します。キー操作による制御は、親FormのOnKeyDownイベントハンドラで行ってください。
SSpreadはExcel形式ファイルからの読込、およびExcel形式に出力するためのメソッドを装備しています。
この機能はSSpreadが扱うセル情報とExcelの扱うセル情報を可能な限りマッチングさせようとしますが、各々扱える機能に差異があるため入出力結果は完全には一致しないことにご注意ください。
またマクロ(VBA)、グラフ、その他画像などもSSpreadでは入出力することはできません。
極端に大きなサイズや多数の計算式があるファイルの場合、インポート・エクスポートする際に非常に時間がかかり、処理が遅くなる、または停止(応答なし)する場合がありますのでご注意ください。
SSpreadで指定される罫線と出力される罫線の関係は以下の通りです。
定数 |
説明 |
Excelでの罫線 |
|---|---|---|
|
$CellBorderStyleSolid |
実線 |
太線 |
|
$CellBorderStyleDash |
破線 |
太破線 |
|
$CellBorderStyleDot |
点線 |
点線 |
|
$CellBorderStyleDashDot |
一点鎖線 |
太一点鎖線 |
|
$CellBorderStyleDashDotDot |
二点鎖線 |
太二点鎖線 |
|
$CellBorderStyleFineSolid |
ドットが1つおきの線 |
実線 |
|
$CellBorderStyleFineDash |
細かい破線 |
破線 |
|
$CellBorderStyleFineDot |
細かい点線 |
点線 |
|
$CellBorderStyleFineDashDot |
細かい一点鎖線 |
一点鎖線 |
|
$CellBorderStyleFineDashDotDot |
細かい二点鎖線 |
二点鎖線 |
特にありません
◆ 表示されるコンテンツはスケーリングの対象外となります