Difference between revisions of "JA/Documentation/BASIC Guide/Editing Spreadsheet Documents"

From Apache OpenOffice Wiki
Jump to: navigation, search
 
(3 intermediate revisions by the same user not shown)
Line 2: Line 2:
 
|ShowPrevNext=block
 
|ShowPrevNext=block
 
|ShowPrevPage=block
 
|ShowPrevPage=block
|PrevPage=Documentation/BASIC Guide/Structure of Spreadsheets
+
|PrevPage=JA/Documentation/BASIC Guide/Structure of Spreadsheets
|NextPage=Documentation/BASIC Guide/Drawings Presentations
+
|NextPage=JA/Documentation/BASIC Guide/Drawings Presentations
 
|spread=block
 
|spread=block
 
}}
 
}}
 
{{DISPLAYTITLE:表計算ドキュメントの効率的な編集方法}}
 
{{DISPLAYTITLE:表計算ドキュメントの効率的な編集方法}}
 
   
 
   
▼これまでの節では、\'95\'5c計算ドキュメントの基\'96\'7b\'8d\'5c造について説明しましたが、この節では個々のセルやセル範囲への効率的なアクセスについて説明します。
+
これまでの節では、表計算ドキュメントの基本構造について説明しましたが、この節では個々のセルやセル範囲への効率的なアクセスについて説明します。
  
==▼セル範囲==
+
==セル範囲==
{{OOo}} には、個々のセルを示すオブジェクト (<idl>com.sun.star.table.Cell</idl> サービス) の他に、セル範囲を示すオブジェクトも用意されています。▼これは <tt>CellRange</tt> オブジェクトと呼ばれるもので、スプレッドシートオブジェクトから <tt>getCellRangeByName</tt> を呼び出して作成します。
+
{{OOo}} には、個々のセルを示すオブジェクト (<idl>com.sun.star.table.Cell</idl> サービス) の他に、セル範囲を示すオブジェクトも用意されています。これは <tt>CellRange</tt> オブジェクトと呼ばれるもので、スプレッドシートオブジェクトから <tt>getCellRangeByName</tt> を呼び出して作成します。
  
 
<source lang="oobas">
 
<source lang="oobas">
Line 23: Line 23:
 
</source>
 
</source>
  
▼\'95\'5c計算ドキュメント上のセル範囲を指定するには、コロン記号 (:) を使用します。▼たとえば A1:C15 という指定は、列 A から 列 C の第 1 から第 15 行目のセル範囲を示します。
+
表計算ドキュメント上のセル範囲を指定するには、コロン記号 (:) を使用します。たとえば A1:C15 という指定は、列 A から 列 C の第 1 から第 15 行目のセル範囲を示します。
  
特定のセル範囲内にある個々のセル位置を指定するには、<tt>getCellByPosition</tt> メソッドを使用しますが、その際には左上隅のセルの座標は (0, 0) として扱われます。▼以下のサンプルコードでは、このメ\'83\'5cッドを利用して、C3 セルを示すオブジェクトを作成しています。
+
特定のセル範囲内にある個々のセル位置を指定するには、<tt>getCellByPosition</tt> メソッドを使用しますが、その際には左上隅のセルの座標は (0, 0) として扱われます。次のサンプルコードでは、このメソッドを利用して、C3 セルを示すオブジェクトを作成しています。
  
 
<source lang="oobas">
 
<source lang="oobas">
Line 39: Line 39:
 
</source>
 
</source>
  
===▼セル範囲の書式設定===
+
===セル範囲の書式設定===
個々のセルの場合と同様、セル範囲に対しても <idl>com.sun.star.table.CellProperties</idl> サービスを用いて書式設定を行うことができます。このサービスの詳細情報およびサンプルコードについては「[[JA/Documentation/BASIC Guide/Formatting Spreadsheet Documents|表計算ドキュメントの書式設定」の節を参照してください。]]
+
個々のセルの場合と同様、セル範囲に対しても <idl>com.sun.star.table.CellProperties</idl> サービスを用いて書式設定を行うことができます。このサービスの詳細情報およびサンプルコードについては「[[JA/Documentation/BASIC Guide/Formatting Spreadsheet Documents|表計算ドキュメントの書式設定]]」の節を参照してください。
  
===▼セル範囲を利用した計算===
+
===セル範囲を利用した計算===
セル範囲に対しては、<tt>computeFunction</tt> メ\'83\'5cッドを用いて各種の算術計算を実行できます。▼この <tt>computeFunction のパラメータには、実行する計算処理を示す定数を渡します。</tt>こうした定数は、<idl>com.sun.star.sheet.GeneralFunction</idl> に定められています。▼指定可\'94\'5cな定数値は以下のものです。
+
セル範囲に対しては、<tt>computeFunction</tt> メソッドを用いて各種の算術計算を実行できます。この <tt>computeFunction</tt> のパラメータには、実行する計算処理を示す定数を渡します。こうした定数は、<idl>com.sun.star.sheet.GeneralFunction</idl> に定められています。指定可能な定数値は次のものです。
  
 
;<tt>SUM</tt>:すべての数値の合計
 
;<tt>SUM</tt>:すべての数値の合計
Line 57: Line 57:
 
;<tt>VARP</tt>:母集団全体の分散
 
;<tt>VARP</tt>:母集団全体の分散
  
以下のサンプルコードでは、セル範囲 <tt>A1:C3</tt> の平均値を計算して、メッセージボックスに表示します。
+
次のサンプルコードでは、セル範囲 <tt>A1:C3</tt> の平均値を計算して、メッセージボックスに表示します。
  
 
<source lang="oobas">
 
<source lang="oobas">
Line 71: Line 71:
 
</source>
 
</source>
  
===▼セルの内容の削除===
+
===セルの内容の削除===
 
セルやセル範囲の内容を削除する場合、<tt>clearContents</tt> メソッドを利用すると、セル範囲中の特定のタイプの内容だけを消去することができます。
 
セルやセル範囲の内容を削除する場合、<tt>clearContents</tt> メソッドを利用すると、セル範囲中の特定のタイプの内容だけを消去することができます。
  
以下のサンプルコードでは、セル範囲 <tt>B2:C3</tt> から、すべての文字列および直接指定した書式設定情報を削除しています。
+
次のサンプルコードでは、セル範囲 <tt>B2:C3</tt> から、すべての文字列および直接指定した書式設定情報を削除しています。
  
 
<source lang="oobas">
 
<source lang="oobas">
Line 92: Line 92:
 
</source>
 
</source>
  
<tt>clearContents</tt> のフラグは、<idl>com.sun.star.sheet.CellFlags</idl> の定数のリストにより指定します。▼このような定数値としては、以下の値を使用できます。
+
<tt>clearContents</tt> のフラグは、<idl>com.sun.star.sheet.CellFlags</idl> の定数のリストにより指定します。このような定数値としては、次の値を使用できます。
  
 
;<tt>VALUE</tt>:日付や時刻として書式設定されていない数値
 
;<tt>VALUE</tt>:日付や時刻として書式設定されていない数値
Line 106: Line 106:
 
<tt>clearContents</tt> による処理では、これらの定数を加算することにより同時指定することが可能で、該当する種類のデータをまとめて削除することもできます。
 
<tt>clearContents</tt> による処理では、これらの定数を加算することにより同時指定することが可能で、該当する種類のデータをまとめて削除することもできます。
  
==▼セルの内容の検索と置換==
+
==セルの内容の検索と置換==
▼文書ドキュメントと同様に、\'95\'5c計算ドキュメントにも検索と置換の機\'94\'5cが用意されています。
+
文書ドキュメントと同様に、表計算ドキュメントにも検索と置換の機能が用意されています。
  
表計算ドキュメントの場合、検索と置換のオプション指定用オブジェクトは、ドキュメントオブジェクトから直接作成するのではなく、<tt>Sheets</tt> のリストを使用する必要があります。▼以下のサンプルコードは、検索と置換の実行例です。
+
表計算ドキュメントの場合、検索と置換のオプション指定用オブジェクトは、ドキュメントオブジェクトから直接作成するのではなく、<tt>Sheets</tt> のリストを使用する必要があります。次のサンプルコードは、検索と置換の実行例です。
  
 
<source lang="oobas">
 
<source lang="oobas">
Line 130: Line 130:
  
 
このサンプルコードでは、最初のシートに対して <tt>ReplaceDescriptor</tt> を作成してからループに入り、すべてのシートを対象とした検索と置換の処理を行なっています。
 
このサンプルコードでは、最初のシートに対して <tt>ReplaceDescriptor</tt> を作成してからループに入り、すべてのシートを対象とした検索と置換の処理を行なっています。
 +
  
 
{{PDL1}}
 
{{PDL1}}
 
{{InterWiki_Languages_BasicGuide|articletitle=Documentation/BASIC Guide/Editing Spreadsheet Documents}}
 
{{InterWiki_Languages_BasicGuide|articletitle=Documentation/BASIC Guide/Editing Spreadsheet Documents}}

Latest revision as of 16:47, 15 December 2008

doc OOo
Book.png


これまでの節では、表計算ドキュメントの基本構造について説明しましたが、この節では個々のセルやセル範囲への効率的なアクセスについて説明します。

セル範囲

Apache OpenOffice には、個々のセルを示すオブジェクト (com.sun.star.table.Cell サービス) の他に、セル範囲を示すオブジェクトも用意されています。これは CellRange オブジェクトと呼ばれるもので、スプレッドシートオブジェクトから getCellRangeByName を呼び出して作成します。

Dim Doc As Object
Dim Sheet As Object
Dim CellRange As Object
 
Doc = StarDesktop.CurrentComponent
Sheet = Doc.Sheets.getByName("Sheet 1")
CellRange = Sheet.getCellRangeByName("A1:C15")

表計算ドキュメント上のセル範囲を指定するには、コロン記号 (:) を使用します。たとえば A1:C15 という指定は、列 A から 列 C の第 1 から第 15 行目のセル範囲を示します。

特定のセル範囲内にある個々のセル位置を指定するには、getCellByPosition メソッドを使用しますが、その際には左上隅のセルの座標は (0, 0) として扱われます。次のサンプルコードでは、このメソッドを利用して、C3 セルを示すオブジェクトを作成しています。

Dim Doc As Object
Dim Sheet As Object
Dim CellRange As Object
Dim Cell As Object
 
Doc = StarDesktop.CurrentComponent
Sheet = Doc.Sheets.getByName("Sheet 1")
CellRange = Sheet.getCellRangeByName("B2:D4")
Cell = CellRange.GetCellByPosition(1, 1)

セル範囲の書式設定

個々のセルの場合と同様、セル範囲に対しても com.sun.star.table.CellProperties サービスを用いて書式設定を行うことができます。このサービスの詳細情報およびサンプルコードについては「表計算ドキュメントの書式設定」の節を参照してください。

セル範囲を利用した計算

セル範囲に対しては、computeFunction メソッドを用いて各種の算術計算を実行できます。この computeFunction のパラメータには、実行する計算処理を示す定数を渡します。こうした定数は、com.sun.star.sheet.GeneralFunction に定められています。指定可能な定数値は次のものです。

SUM
すべての数値の合計
COUNT
すべてのデータ数 (数値以外のデータも含む)
COUNTNUMS
数値データの数
AVERAGE
すべての数値の平均値
MAX
数値の最大値
MIN
数値の最小値
PRODUCT
すべての数値の積
STDEV
標準偏差
VAR
分散
STDEVP
母集団全体の標準偏差
VARP
母集団全体の分散

次のサンプルコードでは、セル範囲 A1:C3 の平均値を計算して、メッセージボックスに表示します。

Dim Doc As Object
Dim Sheet As Object
Dim CellRange As Object
 
Doc = StarDesktop.CurrentComponent
Sheet = Doc.Sheets.getByName("Sheet 1")
CellRange = Sheet.getCellRangeByName("A1:C3")
 
MsgBox CellRange.computeFunction(com.sun.star.sheet.GeneralFunction.AVERAGE)

セルの内容の削除

セルやセル範囲の内容を削除する場合、clearContents メソッドを利用すると、セル範囲中の特定のタイプの内容だけを消去することができます。

次のサンプルコードでは、セル範囲 B2:C3 から、すべての文字列および直接指定した書式設定情報を削除しています。

Dim Doc As Object
Dim Sheet As Object
Dim CellRange As Object
Dim Flags As Long
 
Doc = StarDesktop.CurrentComponent
Sheet = Doc.Sheets(0)
CellRange = Sheet.getCellRangeByName("B2:C3")
 
Flags = com.sun.star.sheet.CellFlags.STRING + _
      com.sun.star.sheet.CellFlags.HARDATTR
 
CellRange.clearContents(Flags)

clearContents のフラグは、com.sun.star.sheet.CellFlags の定数のリストにより指定します。このような定数値としては、次の値を使用できます。

VALUE
日付や時刻として書式設定されていない数値
DATETIME
日付や時刻として書式設定されている数値
STRING
文字列
ANNOTATION
セルに付けられたコメント
FORMULA
数式
HARDATTR
セルに直接指定した書式
STYLES
間接的に設定した書式
OBJECTS
セルに配置された図形描画オブジェクト
EDITATTR
セル中の一部のテキストに対してのみ施された書式

clearContents による処理では、これらの定数を加算することにより同時指定することが可能で、該当する種類のデータをまとめて削除することもできます。

セルの内容の検索と置換

文書ドキュメントと同様に、表計算ドキュメントにも検索と置換の機能が用意されています。

表計算ドキュメントの場合、検索と置換のオプション指定用オブジェクトは、ドキュメントオブジェクトから直接作成するのではなく、Sheets のリストを使用する必要があります。次のサンプルコードは、検索と置換の実行例です。

Dim Doc As Object
Dim Sheet As Object
Dim ReplaceDescriptor As Object
Dim I As Integer
 
Doc = StarDesktop.CurrentComponent
Sheet = Doc.Sheets(0)
 
ReplaceDescriptor = Sheet.createReplaceDescriptor()
ReplaceDescriptor.SearchString = "is"
ReplaceDescriptor.ReplaceString = "was"
For I = 0 to Doc.Sheets.Count - 1
   Sheet = Doc.Sheets(I)
   Sheet.ReplaceAll(ReplaceDescriptor) 
Next I

このサンプルコードでは、最初のシートに対して ReplaceDescriptor を作成してからループに入り、すべてのシートを対象とした検索と置換の処理を行なっています。


Content on this page is licensed under the Public Documentation License (PDL).
Personal tools